La Herencia Simple indica que podemos definir n clases nuevas a partir de una clase padre o clase inicial.
Mientras que la herencia Múltiple indica que se pueden definir n clases nuevas a partir de varias clases padres o iniciales.
Si comparamos ambas formas de Herencia notamos que el diseño propio
del lenguaje Java, imposibilita pensar el diseño de un programa
aplicando herencia múltiple, sin embargo dicho concepto se podría
aplicar por ejemplo en C++, donde con muha frecuencia se hace un uso
indebido de las relaciones de herencia múltiple, lo cual hace que el
mismo pierda integridad. En Java esto no ocurre, ya que no ofrece
soporte para este tipo de relaciones.
Java permite únicamente Herencia Simple, es decir, las clases sólo podrán Heredar de una única clase padre, o superclase.
El truco de la Herencia en Java es que se reutiliza código creando
nuevas clases, pero en vez de crearlas de la nada, se utilizan clases ya
existentes (que otra persona ya ha construido y depurado). La gracia es
usar clases sin manchar el código existente.
Para lograr la reutilización de código, ya vimos el semestre anterior
el concepto de colaboración de clases, donde creamos objetos de las
clases ya existentes, pero dentro de clases nuevas. A esto se le conoce
como colaboración de clases o composición. Acá simplemente se está
reutilizando la funcionalidad del código, no su forma. Este semestre,
sin embargo, veremos una forma un poco más sutil.
Crearemos clases como si fueran un tipo de clase ya existente.
Literalmente nos tomaremos la misma forma de la clase ya existente y le
agregaremos más fucionalidades específicas, pero sin siquiera tocar la
clase ya existente. A este proceso le llamamos Herencia, y finalmente es
el compilador de Java quien hace toda la tarea.
La Herencia es uno de los conocimientos clave de la programación
orientada a objetos, ya que incluso la misma estructura del Lenguaje
Java implementa Herencias de forma implícita. Todo en Java son
Herencias.