▷ 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();
}
}
Comentarios
Publicar un comentario
Cuéntame que opinas acerca del artículo. Recuerda ser respetuoso si quieres que se publique tu comentario 😊