La herencia de clases en Java

La herencia de clases en 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.


Un comentario 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 *

curso de Python Entrada anterior Métodos para obtener tablas y columnas MySQL desde Python
php mysql bootstrap Entrada siguiente Los strings o cadenas de caracteres de PHP