Herencia en Java
La herencia es una relación entre clases donde una clase comparte la estructura o comportamiento definido en otra clase (herencia simple) o en más clases (herencia múltiple). La herencia define una jerarquía “es-un” entre clases, en la cual una subclase hereda de una o más clases generalizadas; una subclase típicamente especializa su superclase añadiendo o redefiniendo la estructura y el comportamiento.
En la imagen, la clase B comparte las propiedades de la clase A, pero redefine a2 y m2. La clase C, también, comparte los atributos de la clase A, pero añade las propiedades a4 y m4. Las subclases no pueden rechazar ninguna propiedad de sus superclases. Se acostumbra a escribir sólo lo nuevo y se omiten las propiedades sin cambio. La relación de herencia se establece desde las subclases hacia la superclase. Es decir, B y C indican explícitamente que son subclases de A en cada una de sus declaraciones. La palabra subclase sólo denota que es una clase que hereda y la palabra superclase sólo denota que es una clase de la que se hereda. La superclase y la subclase reciben también reciben otros nombres, por ejemplo: clase base y clase derivada respectivamente.
Desde el punto de vista del código, los objetos de la subclase B son también objetos de la clase A, aunque dos de sus propiedades (a2, m2) tienen cualidades distintas a los objetos de la clase A. De modo semejante, los objetos de la subclase C son también objetos de la clase A.