En Java la herencia se indica mediante la palabra reservada extends
:
[modificador] class ClasePadre {
// Cuerpo de la clase
…
}
[modificador] class ClaseHija extends ClasePadre {
// Cuerpo de la clase
…
}
Imagina que tienes una clase Persona que contiene atributos como nombre, apellidos y fecha de nacimiento:
public class Persona {
String nombre;
String apellidos;
GregorianCalendar fechaNacim;
…
}
Es posible que, más adelante, necesites una clase Alumno que compartirá esos atributos (dado que todo alumno es una persona, pero con algunas características específicas que lo especializan). En tal caso tendrías la posibilidad de crear una clase Alumno que repitiera todos esos atributos o bien heredar de la clase Persona:
public class Alumno extends Persona {
String grupo;
double notaMedia;
…
}
A partir de ahora, un objeto de la clase Alumno
contendrá los atributos grupo
y notaMedia
(propios de la clase Alumno
), pero también nombre
, apellidos
y fechaNacim
(propios de su clase base Persona
y que por tanto ha heredado).