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.
Hola , igual me fue difícil entender
Para imprimir por pantalla tenemos el acceso directo «sout» + INTRO, lo que genera el texto System.out.println()
😉