A continuación se presentan varios tipos de herencia en Java. Veremos cada uno de ellos uno por uno con la ayuda de ejemplos y diagramas de flujo.
1) Herencia única
La herenciaúnica es muy fácil de entender. Cuando una clase se extiende a otra clase, la llamamos herencia única. El siguiente diagrama de flujo muestra que la clase B se extiende sólo una clase que es A. Aquí A es una clase padre de B y B sería una clase hijo de A.
Programa de ejemplo de herencia única en Java
Clase A{ public void methodA() { System.out.println("Método de la clase base"); }}Clase B extiende A{ public void methodB() { System.out.println("Método de la clase hijo"); } public static void main(String args[]) { B obj = new B(); obj.methodA(); //calling super class method obj.methodB(); //calling local method }}
2) Herencia múltiple
«Herencia múltiple» se refiere al concepto de una clase que extiende (o hereda) más de una clase base. La herencia que aprendimos antes tenía el concepto de una clase base o padre. El problema con la «herencia múltiple» es que la clase derivada tendrá que manejar la dependencia de dos clases base.
Nota 1: La herencia múltiple se utiliza muy raramente en los proyectos de software. El uso de la herencia múltiple a menudo conduce a problemas en la jerarquía. Esto da lugar a una complejidad no deseada cuando se amplía la clase.
Nota 2: La mayoría de los nuevos lenguajes OO como Small Talk, Java, C# no soportan la Herencia Múltiple. Herencia múltiple está soportado en C++.
3) Herencia Múltiple
La herencia multinivel se refiere a un mecanismo en la tecnología OO en el que se puede heredar de una clase derivada, haciendo así que esta clase derivada sea la clase base de la nueva clase. Como se puede ver en el siguiente diagrama de flujo C es una subclase o clase hija de B y B es una clase hija de A. Para más detalles y ejemplo consulte – Herencia multinivel en Java.
Programa de ejemplo de herencia multinivel en Java
Clase X{ public void methodX() { System.out.println("Class X method"); }}Clase Y extiende X{public void methodY(){System.out.println("class Y method");}}Clase Z extiende Y{ public void methodZ() { System.out.println("método de la clase Z"); } public static void main(String args[]) { Z obj = new Z(); obj.methodX(); //calling grand parent class method obj.methodY(); //calling parent class method obj.methodZ(); //calling local method }}
4) Herencia jerárquica
En este tipo de herencia una clase es heredada por muchas subclases. En el siguiente ejemplo la clase B,C y D hereda la misma clase A. A es la clase padre (o clase base) de B,C y D. Leer más en – Herencia jerárquica en java con programa de ejemplo.
5) Herencia Híbrida
En términos simples se puede decir que la herencia híbrida es una combinación de herencia única y múltiple . Un típico diagrama de flujo se vería como el siguiente. ¡Una herencia híbrida puede lograrse en el java de la misma manera que la herencia múltiple! Usando interfaces. Sí, lo has oído bien. Usando interfaces se puede tener una herencia múltiple y también híbrida en Java.