Tipos de herencia en Java: única, múltiple, multinivel e híbrida
Publicado: 2021-06-30Introducción
El lenguaje de programación “Java” es muy utilizado en el desarrollo de aplicaciones para móvil, web, escritorio, etc. Es un lenguaje de programación robusto, de alto nivel y orientado a objetos desarrollado por Sun Microsystems en 1995. A pesar de ser un lenguaje de programación , Java tiene una API y un entorno de ejecución (JRE) y, por lo tanto, también se denomina plataforma.
Hay varios conceptos en Java, con cuatro conceptos principales para dominar el lenguaje. Son abstracción, encapsulación, herencia y polimorfismo.
En este artículo, nos centraremos en el concepto de herencia en Java y los tipos de herencia en Java .
¿Qué es la herencia?
Como sugiere el nombre, herencia significa heredar las propiedades. El mecanismo por el cual una clase puede derivar las propiedades de una clase diferente se denomina herencia. Con el concepto de herencia, la información de un programa se puede organizar jerárquicamente.
En Java, el concepto de herencia permite a los usuarios crear clases y utilizar las propiedades de las clases existentes.
Algunas terminologías importantes asociadas con el concepto son:
- Clase : Se define como un grupo de objetos que comparten propiedades comunes.
- Subclase : también conocida como clase derivada o extendida, esta clase hereda las características de otra clase. Además, junto con los campos y métodos heredados, la clase generada a partir de la clase puede agregar campos y métodos propios.
- Superclase : La superclase representa la clase cuyas características son heredadas por una subclase.
- Reutilización : La técnica de reutilización permite al usuario crear una clase (una nueva) teniendo los campos o métodos de una clase ya existente. Permite reutilizar el código.
Importancia de la herencia de Java
La implementación de la herencia en Java proporciona los siguientes beneficios:
- La herencia minimiza la complejidad de un código al minimizar el código duplicado. Si otra clase tiene que usar el mismo código, simplemente se puede heredar de esa clase a su subclase. Por lo tanto, el código está mejor organizado.
- La eficiencia de ejecución de un código aumenta a medida que el código se organiza de una forma más simple.
- El concepto de polimorfismo se puede utilizar junto con la herencia.
Sintaxis
La sintaxis básica es
clase superclase {
—————-
}
clase subclase extiende superclase
{
————–
—————–
}
La palabra clave "extiende" se usa al heredar una clase. Define que la funcionalidad de la superclase se extiende a la subclase.
La nueva clase creada se denomina subclase, mientras que la clase heredada se denomina clase principal.
Figura 1: a continuación se muestra un ejemplo de un código que aplica la herencia de Java
Fuente
En el ejemplo anterior se crean dos clases Calculation y My_Calculation. Los métodos added() y Subtraction() se heredan del cálculo de la clase en My_Calculation. La palabra clave extends se ha utilizado para heredar los métodos.
La compilación y ejecución del código anterior da el siguiente resultado.
Figura 2: La salida del código en la Figura 1
Fuente
La creación de la clase My_Calculation copia el contenido de la superclase en la subclase. Con los objetos de la subclase, los usuarios pueden acceder al miembro de la subclase.
En ciertos casos cuando tenemos que diferenciar entre los miembros de la subclase a los de la superclase que tienen los mismos nombres, se utiliza la palabra clave "super". Si supuestamente tenemos dos clases Sub_class y Super_class que tienen el mismo método, es decir, mostrar(). La implementación del método es diferente pero tiene el mismo nombre. En tal caso, para diferenciar entre la superclase del método y la subclase, se debe utilizar la palabra clave super.
Tipos de herencia de Java
Los diferentes tipos de herencia se observan en Java:
1. Herencia de un solo nivel
Como sugiere el nombre, este tipo de herencia ocurre solo para una sola clase. Solo una clase se deriva de la clase padre. El diagrama de flujo de una herencia única se muestra a continuación:
Figura 3: Ilustración gráfica de la herencia de un solo nivel
Fuente
Dos clases Clase A y Clase B se muestran en la Figura 3 , donde la Clase B hereda las propiedades de la Clase A.
Figura 4 : Un ejemplo de un código que aplica la herencia de un solo nivel
Fuente
2. Herencia multinivel
La herencia multinivel incluye la participación de al menos dos o más de dos clases. Una clase hereda las características de una clase principal y la subclase recién creada se convierte en la clase base para otra clase nueva.
Figura 5: Diagrama de flujo de la herencia multinivel
Fuente
A partir del diagrama de flujo de la Figura 5 , podemos observar que la Clase B es una clase derivada de la Clase A, y la Clase C se deriva además de la Clase B. Por lo tanto, el concepto de clase abuela surge en la herencia de niveles múltiples. Sin embargo, no se puede acceder directamente a los miembros de la clase de un abuelo en Java.
Por lo tanto, la Figura 5 muestra que la Clase C hereda los métodos y propiedades tanto de la Clase A como de la Clase B.
A continuación se muestra un ejemplo de herencia multinivel con tres clases X, Y y Z. La clase Y se deriva de la clase X, que crea aún más la clase Z.
Figura 6: Un ejemplo de herencia multinivel
Fuente
3. Herencia jerárquica
El tipo de herencia donde muchas subclases heredan de una sola clase se conoce como herencia jerárquica.
Figura 7: Representación gráfica de una herencia jerárquica.
En la Figura 7 , podemos observar que las tres clases Clase B, Clase C y Clase D se heredan de la única Clase A. Todas las clases secundarias tienen la misma clase principal en herencia jerárquica.
Figura 8: Un ejemplo de código que muestra el concepto de herencia jerárquica
Fuente
El código anterior produce la salida
maullando…
comiendo…
Además de estos tipos de herencia en Java , existen otros tipos conocidos como herencias múltiples y herencia híbrida. Ambos tipos no se admiten a través de clases y solo se pueden lograr mediante el uso de interfaces.
4. Herencia múltiple
Las herencias múltiples son un tipo de herencia en el que una subclase puede heredar características de más de una clase principal.
Figura 9: Representación de herencias múltiples
Fuente
La Figura 4 muestra que la Clase C se deriva de las dos clases Clase A y Clase B. En otras palabras, se puede describir que la subclase C hereda propiedades tanto de la Clase A como de la Clase B.
5. Herencia híbrida
La herencia híbrida es un tipo de herencia que combina herencia única y herencia múltiple. Dado que Java no admite herencias múltiples, la herencia híbrida también se puede lograr solo a través de interfaces.
Figura 10: Representación de una herencia híbrida
Fuente
Con los diferentes tipos de herencia en Java, el objetivo final es crear subclases que tengan propiedades heredadas de las superclases. Las subclases creadas tienen varias propiedades que son:
- Los campos y métodos heredados en una subclase se pueden usar directamente.
- También se pueden declarar nuevos campos y métodos en la subclase que no está presente en la superclase.
- Se puede crear un nuevo método de instancia en la subclase que tenga la misma firma que el método en la superclase. El proceso se conoce como anulación.
- Se puede crear un nuevo método estático en la subclase que tenga la misma firma que el método en la superclase. El proceso se conoce como ocultar.
Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Conclusión
El artículo discutió el importante concepto de herencia en Java y los tipos de herencia en Java . La herencia es por lo tanto el mecanismo donde podemos reutilizar los códigos para adquirir las propiedades de una clase en otra clase. Esto se puede lograr a través de los diferentes tipos de patrones de herencia como se muestra en el artículo. Sin embargo, hay mucho más en el concepto de herencia. Para sobresalir en el campo del desarrollo, se requiere dominar la compleja programación de Java. Si tiene el sueño de innovar en dispositivos inteligentes, entonces el programa Executive PG en desarrollo de software de pila completa ofrecido por upGrad's sería la mejor opción. Certificado por la Universidad John Moores de Liverpool , el curso en asociación con IIIT Bangalore ofrece más de 500 horas de aprendizaje y está diseñado para los primeros profesionales. La habilidad aprendida en el curso de upGrad ayudará a abrir oportunidades en el campo del desarrollo de software, desarrollo web, desarrollador de javascript, etc. Abierto a cualquier género dentro del grupo de edad de 21 a 45 años, el programa interactivo podría ser la mejor opción para todos los codificadores.
¿Qué es la herencia?
La herencia es un proceso por el cual un nuevo objeto adquiere las propiedades del objeto anterior. Como ejemplo, puede considerar una clase 'humana'. Puede haber muchas propiedades de los humanos que desee incluir en su clase, como altura, peso, etc. Entonces, una forma de hacerlo es definir todas esas propiedades nuevamente en su clase. Puede ser una buena manera de aprender programación orientada a objetos, pero no una buena práctica. La mejor manera de hacerlo es heredar todas esas propiedades de una clase en particular. La clase 'hijo' puede heredar todas las propiedades de la clase 'humano' (o 'padre'). Esto se llama herencia en la programación orientada a objetos.