▷ HERENCIA en JAVA
Herencia en Java
La herencia en Java es un proceso en el cual una clase padre (llamada también clase base) puede transmitir sus atributos y métodos a una clase hija (llamada también clase derivada) siempre y cuando el modificador de acceso sea público o protegido. Las características de los modificadores de acceso tanto de atributos como de métodos se mencionan a detalle en el artículo titulado: Encapsulamiento en JAVA.
Se utiliza la palabra derivada extends en la clase derivada seguida del nombre de la clase base de la cual se desea heredar sus atributos y métodos, como se ve en el siguiente ejemplo, donde existen 3 clases, la clase Animal, la clase Perro y la clase Gato, donde la clase base es la clase Animal y las clases derivadas son las clases Perro y Gato que heredarán los atributos y métodos de la clase Animal cuyo modificador de acceso sea público o protegido.
En el siguiente diagrama vemos que los datos que la clase Animal podrá heredar serán los atributos con modificador de acceso protegido: nombre, raza, color y tamano y el método con modificador de acceso público; imprimeDatos(). El atributo tipo no es heredable porque su modificador de acceso es privado.
Podemos también observar que las clases tienen atributos y métodos propios con sus modificadores de acceso correspondientes.
Diagrama UML
![]()  | 
| Figura 1. Herencia en Java. | 
Código en Java 
Clase Animal
public class Animal
{
	protected String nombre, raza, color, tamano;
        private final String tipo;
        public Animal(String nombre, String raza, String color, String tamano)
        {
            this.nombre=nombre;
            this.raza=raza;
            this.color=color;
            this.tamano=tamano;
            this.tipo="Terrestre";
        }
	public void imprimeDatos()
	{
            System.out.println("El nombre es: "+nombre);
            System.out.println("La raza es: "+raza);
            System.out.println("El color es: "+color);
            System.out.println("El tamaño es: "+tamano);
            System.out.println("El tipo es: "+tipo);
	}
}    
Clase Perro
package herencia;
public class Perro extends Animal
{
	private final String marca_croquetas;
        public Perro(String nombre, String raza, String color, String tamano, String marca_croquetas)
        {
            super(nombre, raza, color, tamano);
            this.marca_croquetas=marca_croquetas;
        }
	public void imprimeMarcaCroquetas()
	{
            System.out.println("La marca de croquetas son: "+marca_croquetas);
	}
        
}Clase Gato
package herencia;
public class Gato extends Animal
{
	private final String marca_arena;
        public Gato(String nombre, String raza, String color, String tamano, String marca_arena)
        {
            super(nombre, raza, color, tamano);
            this.marca_arena=marca_arena;
        }
        
	public void imprimeMarcaArena()
	{
            System.out.println("La marca de arena es: "+marca_arena);
	}
        
}
  También se debe de codificar la clase main llamada Herencia que permitirá la ejecución del programa.Clase Herencia
package herencia;
import java.util.*;
public class Herencia 
{
    private static String nombre;
    private static String raza;
    private static String color;
    private static String tamano;
    private static String marca_croquetas;
    private static String marca_arena;
    public static void main(String[] args) 
    {
        Scanner teclado=new Scanner(System.in);
        System.out.println("Dame el nombre del perro: ");
        nombre= teclado.nextLine();
        System.out.println("Dame la raza del perro: ");
        raza= teclado.nextLine();
        System.out.println("Dame el color del perro: ");
        color= teclado.nextLine();
        System.out.println("Dame el tamaño del perro: ");
        tamano= teclado.nextLine();
        System.out.println("Dame la marca de croquetas del perro: ");
        marca_croquetas= teclado.nextLine();
        Perro p=new Perro(nombre, raza, color, tamano, marca_croquetas);
        p.imprimeDatos();
        p.imprimeMarcaCroquetas();
        System.out.println("Dame el nombre del gato: ");
        nombre= teclado.nextLine();
        System.out.println("Dame la raza del gato: ");
        raza= teclado.nextLine();
        System.out.println("Dame el color del gato: ");
        color= teclado.nextLine();
        System.out.println("Dame el tamaño del gato: ");
        tamano= teclado.nextLine();
        System.out.println("Dame la marca de arena del gato: ");
        marca_arena= teclado.nextLine();
        Gato g=new Gato(nombre, raza, color, tamano, marca_arena);
        g.imprimeDatos();
        g.imprimeMarcaArena();
    }
}Me encantaría saber tu opinión sobre este tema. Déjame un comentario aquí abajo 💬 y, si te gustó el contenido, ¡no olvides seguir el blog para no perderte las próximas publicaciones! 📚✨


Comentarios