La herencia permite que se puedan definir nuevas clases basadas de unas ya existentes a fin de reutilizar el código, generando así una jerarquía de clases dentro de una aplicación. Si una clase deriva de otra, esta hereda sus atributos y métodos y puede añadir nuevos atributos, métodos o redefinir los heredados.
La
clase que hereda se llama subclase. Por lo tanto, una subclase es una versión
especializada de una superclase. Hereda todas las variables y métodos definidos
por la superclase y agrega sus propios elementos únicos.
Superclase: la clase cuyas características se heredan se conoce como
superclase (o una clase base o una clase principal).
Subclase: la clase que hereda la otra clase se conoce como
subclase (o una clase derivada, clase extendida o clase hija). La subclase
puede agregar sus propios campos y métodos, además de los campos y métodos de
la superclase.
Reutilización: la herencia respalda el concepto de “reutilización”, es
decir, cuando queremos crear una clase nueva y ya hay una clase que incluye
parte del código que queremos, podemos derivar nuestra nueva clase de la clase
existente.
Declara una jerarquía de
herencia
En Java, cada clase solo puede
derivarse de otra clase. Esa clase se llama superclase, o clase padre. La clase
derivada se llama subclase o clase secundaria.
Utiliza la palabra clave extends para
identificar la clase que extiende su subclase. Si no declara una superclase, su
clase amplía implícitamente la clase Object. El objeto es la raíz de todas las
jerarquías de herencia; Es la única clase en Java que no se extiende de otra
clase.
Tipos de herencia en Java
Java, como la mayoría de los lenguajes
de programación modernos, dispone de diferentes tipos de herencia que podemos
usar para hacer todavía más eficiente nuestro programa al añadir
características o atributos procedentes de diferentes clases. Lo que sí debemos
tener en cuenta es que solo puede existir una superclase, como veremos en los
siguientes tipos de herencia:
Herencia única: donde las subclases heredan las características de solo
una superclase.
Herencia Multinivel: una clase derivada heredará una clase base y, además,
la clase derivada también actuará como la clase base de otra clase.
Herencia Jerárquica: una clase sirve como una superclase (clase base) para
más de una subclase.
Herencia Múltiple (a través de interfaces): una clase puede tener más de
una superclase y heredar características de todas las clases principales. Pero
Java no admite herencia múltiple con clases, así que para lograrlo tenemos que
usar Interfaces.
Herencia Híbrida: (a través de Interfaces): Es una mezcla de dos o más
tipos de herencia anteriores. Como Java no admite herencia múltiple con clases,
la herencia híbrida tampoco es posible con clases, pero como en el ejemplo
anterior, podemos lograr el mismo resultado a través de Interfaces.
Comentarios
Publicar un comentario