Cuando una clase extiende una clase, que extiende otra clase, esa clase se llama herencia multinivel. Por ejemplo, la clase C extiende la clase B y la clase B extiende la clase A, por lo que este tipo de herencia se conoce como herencia multinivel.
Veamos esto en un diagrama:
Está bastante claro con el diagrama que existe un concepto de clase no padre en la herencia multinivel. Si tomamos el ejemplo de este diagrama, la clase C hereda la clase B y la clase B hereda la clase A, lo que significa que B es una clase padre de C y A es una clase padre de B. Entonces en este caso la clase C hereda implícitamente propiedades y métodos de la clase A junto con la clase B, que es lo que se llama herencia multinivel.
Para aprender los conceptos básicos de la herencia, consulte este tutorial: Herencia en Java
Ejemplo de herencia multinivel
En este ejemplo tenemos tres clases: Car
, Maruti
es Maruti800
. Hicimos una configuración: la clase Maruti se extiende Car
y clase Maruti800
se extiende Maruti
. Con la ayuda de esta configuración de jerarquía multinivel, nuestra clase Maruti800 puede utilizar los métodos de ambas clases (Auto y Maruti).
class Car{ public Car() { System.out.println("Class Car"); } public void vehicleType() { System.out.println("Vehicle Type: Car"); } } class Maruti extends Car{ public Maruti() { System.out.println("Class Maruti"); } public void brand() { System.out.println("Brand: Maruti"); } public void speed() { System.out.println("Max: 90Kmph"); } } public class Maruti800 extends Maruti{ public Maruti800() { System.out.println("Maruti Model: 800"); } public void speed() { System.out.println("Max: 80Kmph"); } public static void main(String args[]) { Maruti800 obj=new Maruti800(); obj.vehicleType(); obj.brand(); obj.speed(); } }
Producción:
Class Car Class Maruti Maruti Model: 800 Vehicle Type: Car Brand: Maruti Max: 80Kmph