¡Suscríbete a mi canal de Youtube!

▷ 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();
}
}
Como podemos observar podemos crear objetos de la clase Perro y Gato y utilizar sus atributos y métodos heredados sin necesidad de crear un objeto de la clase Animal. Por supuesto se podrán utilizar acorde al modificador acceso que se le haya asignado al momento de su declaración.

En el siguiente video te explico un poco más a detalle el ejemplo anterior y te anexo la presentación de Prezi del mismo para que puedas visualizarla y analizarla.
 
 
 
No te olvides darle LIKE y SUSCRIBIRTE al blog y a mi canal si te gustó el video. Si gustas realizar una DONACIÓN para ayudarme a mejorar el canal y mi contenido, puedes hacerlo mediante el botón ❤$GRACIAS ubicado en la parte posterior del video en YouTube o visitando el enlace https://linktr.ee/ezavalar y haciendo clic en el botón Donaciones.

Comentarios

Seguidores del blog

Suscríbete al blog

Recibe mis nuevas publicaciones por email: