Post

Herencia

Herencia

En Java es posible heredar atributos y métodos de una clase a otra (herencia), este concepto lo podemos categorizar en dos categorías:

  • Subclase (secundaria): La clase que hereda de otra clase
  • Superclase (padre): La clase de la que se hereda

Para heredar de una clase, utilizamos la palabra clave extends

En el siguiente ejemplo la clase coche (subclase) hereda atributos y métodos de la clase vehiculos (superclase)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class vehiculo {
    protected String marca = "Ford"; // Atributo del vehículo
    public void bocina(){              // Método del vehículo
        System.out.println("Tuut, tuut!");
    }
}

class coche extends vehiculo {
    private String nombreModelo = "Raptor";  // Atributo del coche
    public static void main(String[] args){


        // Creo mi objeto coche
        coche miCoche = new coche();

        // Llamo al metodo bocina (de la clase de vehículo) en el objeto coche
        miCoche.bocina();


        // Muestro el valor del atributo nombreModelo de la clase vehiculo y el valor del nombreModelo de la clase coche
        System.out.println(miCoche.marca + " " + miCoche.nombreModelo);
    }
}

Si te das cuenta establecemos el atributo de marca en vehículo con un protected. Si estuviera configurado en private, la clase coche no podría acceder a él.

Al igual que definíamos variables con final para evitar su modificación, en las clases también lo podemos hacer añadiendo la misma palabra clave (final):

1
2
3
4
5
6
7
final class vehiculo {
    // ...
}

class coche extends vehiculo {
    // Error
}
This post is licensed under CC BY 4.0 by the author.