Tipos de herencia en Java | Explicado

Tipos de herencia en Java | Explicado
Uno de los conceptos clave de la programación Java orientada a objetos es Herencia que permite que una clase adquiera los atributos de clase y las funciones de los miembros de las otras clases utilizando una palabra clave extender. En Java, hay varios tipos de herencia, como un solo, multinivel y jerárquico que pueden usarse en función de diferentes circunstancias. A diferencia de otros lenguajes de programación como C ++, Java no admite el concepto de herencia múltiple para evitar la ambigüedad.

Este artículo proporciona una descripción detallada de los siguientes conceptos con respecto a los tipos de herencia en Java:

  • Herencia única en Java
  • Herencia jerárquica en Java
  • Herencia multinivel en Java
  • Sintaxis básica de herencia única, multinivel y jerárquica en Java
  • Cómo usar la herencia única, multinivel y jerárquica en Java

Entonces empecemos!

Herencia única

En el caso de la herencia única, existe solo una clase principal y una clase infantil y la clase infantil puede acceder a los atributos y funciones de la clase de la clase principal. Tenemos que ocuparnos de los atributos de clase y los métodos de clase para que no haya un conflicto entre los miembros de la clase matriz e infantil.

Sintaxis

La sintaxis básica de la herencia única será así:

Padre de clase pública
// atributos de clase
// Funciones para miembros

El niño de clase pública extiende a los padres
// atributos de clase
// Funciones para miembros

El extender La palabra clave indica que las propiedades de Clase madre son heredados para el Clase infantil.

La figura dada a continuación proporcionará una mejor comprensión de la herencia única:

Solo hay dos clases:

Clase infantil: puede heredar todos los atributos y métodos del Clase madre y no tiene subclase.

Clase madre: Es una superclase que se hereda por Clase infantil.

Ejemplo

En el fragmento de código dado a continuación, creamos tres clases: un Persona clase extendida por Alumno clase y un "Javainreitancia"Clase donde creamos el principal método:

persona de clase
protegido int personaje = 25;
cadena protegida Personname = "John";
Public void display ()
Sistema.afuera.println ("Esta es la clase de persona");


El estudiante de clase extiende a la persona
protegido int rollno = 13;

clase pública Javainheritance
public static void main (string [] args)
Estudiante STD = nuevo estudiante ();
std.mostrar();
Sistema.afuera.println ("Rollo de estudiante No. = " + STD.rollno);
Sistema.afuera.println ("student name =" + std.nombre de persona);
Sistema.afuera.println ("Student Age =" + STD.personaje);

La figura dada a continuación muestra el código completo junto con su salida:

En la figura anterior, se llama a un método de clase de persona con el objeto de la clase de estudiantes y la salida muestra que funciona correctamente.

Herencia jerárquica

Se pueden extender múltiples clases de una clase en herencia jerárquica I.mi. Un padre puede tener varias clases infantiles.

La sintaxis básica de la herencia jerárquica se muestra en el fragmento dado

Padre de clase pública
// atributos de clase
// Funciones para miembros

Public Class Child1 extiende a los padres
// atributos de clase
// Funciones para miembros

Public Class Child2 extiende a los padres
// atributos de clase
// Funciones para miembros

El fragmento dados anteriormente muestra que ambas clases derivadas i.mi. Niño1 y Niño2 puede heredar las propiedades del Padre clase.

La figura dada a continuación muestra el flujo de herencia jerárquica:

Ejemplo

persona de clase
cadena protegida Personname = "John";

El estudiante de clase extiende a la persona
protegido int rollno = 13;

El empleado de la clase extiende a la persona
protegido int empid = 2;

clase pública Javainheritance
public static void main (string [] args)
Estudiante STD = nuevo estudiante ();
Sistema.afuera.println ("Rollo de estudiante No. = " + STD.rollno);
Sistema.afuera.println ("student name =" + std.nombre de persona);
Empleado emp = nuevo empleado ();
Sistema.afuera.println ("Employee ID =" + Emp.Empid);
Sistema.afuera.println ("Nombre del empleado =" + EMP.nombre de persona);

Del fragmento anterior, podemos observar que ambos Empleado y Alumno Las clases son heredadas por el Persona Clase. Entonces, primero, tenemos que crear los objetos de ambas clases individualmente, luego se puede acceder a sus respectivos atributos a través de sus objetos.

El código completo y la salida resultante se muestran en la siguiente figura:

La captura de pantalla anterior muestra que ambas clases accedieron a los atributos del Persona clase que autentica el funcionamiento de la herencia jerárquica.

Herencia multinivel

En la herencia multinivel, la herencia se realiza en la base de niveles, yo.mi. Una clase puede heredar las propiedades de otra clase que ya está heredada de otra clase.

Sintaxis

La sintaxis básica de la herencia multinivel se muestra en el fragmento dado a continuación:

Padre de clase pública
// atributos de clase
// Funciones para miembros

Public Class Child1 extiende a los padres
// atributos de clase
// Funciones para miembros

clase pública Child2 extiende Child1
// atributos de clase
// Funciones para miembros

La figura dada a continuación proporcionará una comprensión profunda de la herencia multinivel:

En la figura dada anteriormente, la Niño1 La clase es una clase derivada del Padre Clase y Niño2 clase es la clase derivada de Niño1. Entonces, podemos decir que el Niño2 La clase es un nieto del Padre clase. De esta manera, la herencia multinivel funciona en Java.

Ejemplo

Este ejemplo crea cuatro clases: la primera es "Persona"La segunda clase es"Alumno"Clase que hereda el"Persona"La clase y la tercera es"Departamento"Clase que hereda el"Alumno" clase. La cuarta clase es "Javainherancia" que sostiene el método principal:

persona de clase
protegido int personaje = 25;
cadena protegida Personname = "John";
Public void display ()
Sistema.afuera.println ("Esta es la clase de persona");


El estudiante de clase extiende a la persona
protegido int rollno = 13;

El departamento de clase extiende al estudiante
Cadena protegida Dept = "informática";

clase pública Javainheritance
public static void main (string [] args)
Departamento DEP = nuevo departamento ();
DEP.mostrar();
Sistema.afuera.println ("Rollo de estudiante No. = " + DEP.rollno);
Sistema.afuera.println ("Student Name =" + Dep.nombre de persona);
Sistema.afuera.println ("Student Age =" + Dep.personaje);
Sistema.afuera.println ("Departamento de estudiantes =" + DEP.departamento);

En el fragmento anterior, podemos observar que una subclase Alumno de clase Persona tiene una clase infantil Departamento que asegura que sea un ejemplo de herencia multinivel. La figura dada a continuación proporciona el código completo y la salida respectiva de la herencia multinivel:

La salida dada anteriormente autentica que el Departamento la clase puede acceder a los atributos de Persona Clasificar Alumno clase. Que valida el funcionamiento de la herencia multinivel.

Conclusión

Java proporciona diferentes tipos de herencia que se pueden usar para diferentes fines dependiendo de los diferentes escenarios y necesidades del usuario, por ejemplo, en la herencia única, solo una sola clase se extiende desde la superclase. En la herencia jerárquica, una superclase puede tener múltiples subclases. Mientras que, en la herencia multinivel, una subclase de una clase madre también puede tener una clase infantil. Este artículo presenta una visión general exhaustiva de los tipos de herencia, y presenta una comprensión profunda de la herencia única, multinivel y jerárquica, su sintaxis y cómo implementarlos en Java.