La herencia ocurre cuando se crea una clase que es hija de otra clase, en ese caso la clase hija hereda todos los atributos y métodos de la clase padre.
Para heredar de una clase deberemos escribir la palabra extends:
modificador_de_acceso class Nombre_clase_hija extends Nombre_clase_padre
Para utilizar métodos de la clase padre dentro de los métodos de la clase hija deberemos usar la palabra super:
super.nombre_del_método();
Si queremos crear un nuevo constructor que utilice al constructor de la clase padre deberemos crear el nuevo constructor, llamar al método constructor (super()) y enviarle como parámetros los atributos definidos en el constructor de la clase padre.
El polimorfismo es cuando una clase hija sobrescribe un método que le fue heredado. Por lo que el polimorfismo permite redefinir el comportamiento de la clase.
Para sobrescribir un método dentro de una clase hija solamente deberemos volver a declarar un método con el mismo nombre que tenía en la clase padre.
Ejemplo:
Realizar un programa que cree una clase con 3 atributos de tipo int y un método para mostrarlos en pantalla. Posteriormente crear una clase hija que deberá incluir un nuevo atributo de tipo int y sobrescribir el método para mostrar los 4 atributos.
Código clase ClasePadre:
Código clase ClaseHija:
Código clase Main:
Ejecución del programa: