Herencia en Java: definición y ejemplos

Ebook: IA generativa y contenido
Maria Coppola
Maria Coppola

Actualizado:

Publicado:

La herencia es un claro ejemplo de cómo los humanos nos basamos en conceptos de la naturaleza para resolver problemas de la ingeniería. En la vida real, la herencia es el hecho de ceder atributos o posesiones de una persona a otra; en términos de programación, y en específico de la programación orientada a objetos, la herencia refiere al concepto de que una clase padre hereda a una clase hija sus atributos o funciones.

Herencia en Java

Además de las funciones y atributos heredados de la clase padre, las clases hijas pueden tener sus propios atributos e incluso definir sus propias funciones. También pueden convertirse en clases padre de otras clases hijas: es el ciclo sin fin.

<< [Plantilla gratuita] >> Plantillas de códigos de programación para Java

Cabe mencionar que en Java los constructores de las clases no se heredan; sin embargo, pueden ejecutarse en la clase hija con el método super().

Considera que las funciones o atributos del tipo private no podrán heredarse.

4 tipos de herencia en Java

En Java podemos utilizar al menos los siguientes cuatro tipos de herencia. Cabe destacar que algunos tipos de herencia en Java se simulan utilizando interfaces y no precisamente clases como tal. Si intentamos hacerlo con clases el compilador de Java nos arrojará diversas advertencias y errores.

Herencia simple o única

Una clase hija hereda de una clase padre. 

Ejemplo de herencia simple en Java

Herencia múltiple

Una clase hija hereda de dos o más clases padre. 

Ejemplo de herencia múltiple en Java

Herencia multinivel

Una clase hija hereda de una clase padre, que a su vez es clase hija de otra clase padre.

Ejemplo de herencia multinivel en Java

Herencia jerárquica

Una clase padre hereda a dos o más clases hijas. 

Ejemplo de herencia jerárquica en Java

Ejemplos de herencia en Java

A continuación, verás un ejemplo de herencias en Java. Te mostraremos tres tipos de herencia:

  1. Simple: la herencia de la clase Persona a Profesor
  2. Multinivel: la herencia de Persona a Alumno y de Alumno a Practicante
  3. Jerárquica: la herencia de Persona a Alumno y a Profesor al mismo tiempo

Veámoslo todo con más detalle:

1. Herencia simple

//Main.java

public class Main {

    public static void main (String [ ] Args) {

        Profesor profesor1 = new Profesor ("Profesor", "Mendoza Cuba", 33);

        //profesor1.setIdProfesor("PROFESOR123456789");

        System.out.println(profesor1.toString());

 

        Alumno alumno1 = new Alumno ("Alumno", "Pardo Manila", 15);

        alumno1.setIdAlumno("ALUMNO123456789");

        System.out.println(alumno1.toString());

 

        Practicante practicante1 = new Practicante ("Practicante", "Torres Nilo", 19);

        practicante1.setIdPracticante("PRACTICANTE123456789");

        System.out.println(practicante1.toString());

    }

}

2. Herencia multinivel

//Persona.java

public class Persona {

    //Atributos

    private String nombre;

    private String apellidos;

    private int edad;

 

    //Constructor

    public Persona (String nombre, String apellidos, int edad) {

        this.nombre = nombre;

        this.apellidos = apellidos;

        this.edad = edad;

    }

 

    //Funciones

    public String getNombre() { return nombre; }

    public String getApellidos() { return apellidos; }

    public int getEdad() { return edad; }

}

3. Herencia jerárquica

//Profesor.java

public class Profesor extends Persona {

    //Atributos propios de la subclase

    private String IdProfesor;

 

    //Constructor

    public Profesor (String nombre, String apellidos, int edad) {

        super(nombre, apellidos, edad);

        IdProfesor = "Unknown";

    }

 

    //Métodos propios de la subclase

    public void setIdProfesor (String IdProfesor) { this.IdProfesor = IdProfesor; }

 

    public String getIdProfesor () { return IdProfesor; }

 

    public String toString() {

        return "" + getNombre() + " " + getApellidos() + " - " + getEdad() + " - " + getIdProfesor();

    }

}

 

//Alumno.java

public class Alumno extends Persona {

    //Atributos propios de la subclase.

    private String IdAlumno;

 

    //Constructor

    public Alumno (String nombre, String apellidos, int edad) {

        super(nombre, apellidos, edad);

        IdAlumno = "Unknown";

    }

 

    //Métodos propios de la subclase

    public void setIdAlumno (String IdAlumno) { this.IdAlumno = IdAlumno; }

 

    public String getIdAlumno () { return IdAlumno; }

 

    public String toString() {

        return "" + getNombre() + " " + getApellidos() + " - " + getEdad() + " - " + getIdAlumno();

    }

}

 

//Practicante.java

public class Practicante extends Alumno {

    //Atributos propios de la subclase.

    private String IdPracticante;

 

    //Constructor

    public Practicante (String nombre, String apellidos, int edad) {

        super(nombre, apellidos, edad);

        IdPracticante = "Unknown";

    }

 

    //Métodos propios de la subclase

    public void setIdPracticante (String IdPracticante) { this.IdPracticante = IdPracticante; }

 

    public String getIdPracticante () { return IdPracticante; }

 

    public String toString() {

        return "" + getNombre() + " " + getApellidos() + " - " + getEdad() + " - " + getIdPracticante();

    }

}

Ahora que conoces los tipos de herencia en Java y cómo es su aplicación, es tiempo de que comiences a experimentar por tu cuenta en tus proyectos.

Plantillas de código de programación para Java
Temas: Java

Artículos relacionados

Tu privacidad es muy importante para nosotros. HubSpot utiliza la información que nos proporcionas para mantenerte al tanto de nuestros productos, servicios y contenido relevante. Puedes cancelar la suscripción a estos mensajes en cualquier momento. Para más información, consulta nuestra Política de privacidad.

Descubre cómo usar la IA generativa para optimizar todas tus operaciones de contenido y procesos creativos

CMS Hub is flexible for marketers, powerful for developers, and gives customers a personalized, secure experience

START FREE OR GET A DEMO