La herencia de clases en Java

curso Java

Pasamos ya al tema de la herencia de clases en Java. Tema fundamental de la programación orientada a objetos.


¿Qué es la herencia de clases?

La herencia de clases en Java, permite que una clase herede los atributos y métodos de otra. De esta forma, se pueden crear clases nuevas que comparten características con otras ya existentes, y evitar la duplicación de código.

Tenemos el siguiente archivo con dos clases:

class Empleado {
    //Atributos
    String nombre;
    String apellidos;
    int edad;
    String direccion;
    String telefono;

    // constructor de la clase
    public Empleado(String nombre, String apellidos, int edad, String direccion, String telefono) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.direccion = direccion;
        this.telefono = telefono;
    }
}

public class Main {
    public static void main(String[] args) {
        Empleado empleado1 = new Empleado("Sofía",
                "Valverde Álvarez",
                43,
                "Av. del Sur, 75",
                "+34-91-000-0000");
    }
}

Supongamos que queremos hacer una clase más para clientes. La información que necesitamos de ellos, es casi la misma. De modo, que podríamos repetir una clase entera de esta forma:

class Cliente {
    //Atributos
    String nombre;
    String apellidos;
    int edad;
    String direccion;
    String telefono;
    int IDCliente;

    // constructor de la clase
    public Cliente(String nombre, String apellidos, int edad, String direccion, String telefono, int IDCliente) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.direccion = direccion;
        this.telefono = telefono;
        this.IDCliente = IDCliente;
    }
}

O bien, utilizar lo que te voy a enseñar en este capítulo, la herencia de clases.

En el siguiente código de ejemplo, tenemos una clase primaria (Empleado), que se suele llamar clase padre o superclase.


Después, tenemos una clase hija o subclase. Esta se declara con la palabra reservada de Java «extends» y el nombre de la superclase. De esta forma, indicamos a Java, que queremos heredar de la clase «Empleado» en la clase «Cliente».

En esta clase, declararemos todo lo que sea diferente a la otra clase, por ejemplo, el campo «IDCliente», el cuál, no existe en la clase «Empleado».

Con la palabra reservada «super» de Java, voy a indicar en el método constructor, los atributos que quiero heredar en concreto de la clase padre.

Gracias a esto, ya podemos crear objetos de tipo «Cliente», que tienen todos los campos de «Empleado» y el suyo o suyos propios.

class Empleado {
    //Atributos
    String nombre;
    String apellidos;
    int edad;
    String direccion;
    String telefono;

    // constructor de la clase
    public Empleado(String nombre, String apellidos, int edad, String direccion, String telefono) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.direccion = direccion;
        this.telefono = telefono;
    }
}

class Cliente extends Empleado {
 	//Atributos
    int IDCliente;
	
  // constructor de la clase
    public Cliente(String nombre, String apellidos, int edad, String direccion, String telefono, int IDCliente) {
        super(nombre, apellidos, edad, direccion, telefono);
        this.IDCliente = IDCliente;
    }
}

public class Main {
    public static void main(String[] args) {
        Cliente cliente1 = new Cliente("Sofía",
                "Valverde Álvarez",
                43,
                "Av. del Sur, 75",
                "+34-91-000-0000",
                1);
        System.out.println("El id del cliente es: " + cliente1.IDCliente);
    }
}

Prueba de imprimir cualquiera de los valores de un objeto creado con la clase «Cliente» y comprobarás que tienes acceso a todos.

Resultado en la consola

El id del cliente es: 1

Si te queda cualquier duda sobre el capítulo, déjame un comentario aquí o en el canal de Youtube y miraré de ayudarte.

No te pierdas ningún capítulo del curso Máster en Java.


La herencia de clases en Java

2 comentarios en «La herencia de clases en Java»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba