Está en la página 1de 6

package animal;

public interface IAnimal {


int valor=5;
public void comunicarse();
}

package animal;


public abstract class Animal implements IAnimal {

private String nombre;

/**
* Constructor de la clase Animal
* @param nombre
*/
public Animal (String nombre){
this.nombre=nombre;
System.out.println("Constructor Animal, " +
"nombre del animal : "+this.nombre);
}

/**
* Retorna el valor de nombre
* @return
*/
public String getNombre(){
return nombre;
}


/**
* Metodo Abstracto tipoAnimal, la implementacin depende
* de las clases concretas que extiendan la clase Animal
*/
public abstract void tipoAnimal();

}

package animal;
import java.util.Scanner;
/**
*
* @author usuario
*/
public class Test {

public static void main (String[] arg){

/**Creamos anim, un objeto Perro de tipo Animal*/
Animal anim= new Perro("goliath") ;
anim.tipoAnimal();
anim.comunicarse();
System.out.println();

/**Creamos perro, un objeto Perro de tipo Perro*/
Perro perro=new Perro("hercules");
perro.tipoAnimal();
System.out.println();

/**Creamos animalPolimorfico, un objeto perro de tipo Animal
* asignamos una referencia ya existente*/
Animal animalPolimorfico=perro;
animalPolimorfico.tipoAnimal();
System.out.println();

/**reasignamos la referencia del objeto anim a el objeto perro
* esto es valido ya que ambos son de tipo Perro*/
perro=(Perro) anim;
perro.tipoAnimal();
System.out.println();

/**Creamos gat, un objeto Gato de tipo Animal*/
Animal gat=new Gato("pichi");
gat.tipoAnimal();
gat.comunicarse();
System.out.println();

/**Creamos cat, un objeto Gato de tipo IAnimal
* Para esto aplicamos polimorfismo usando la Interface*/
IAnimal cat = new Gato("pitufa");
cat.comunicarse();

System.out.println("\nConstante en la interfaz Animal : "+IAnimal.valor);
}
}


package animal;

/**
*
* @author usuario
*/
public class Perro extends Animal {
/**
* @param nombre
*/
public Perro(String nombre) {
super(nombre);
System.out.println("Constructor perro, nombre : "+nombre);
}

public void tipoAnimal() {
System.out.println("Tipo Animal : Es un Perro");
}

public void comunicarse(){
System.out.println("Metodo comunicarse : El perro Ladra... Guau Guau");
}
}



package animal;
import java.util.Scanner;
/**
*
* @author usuario
*/
public class Test {

public static void main (String[] arg){

/**Creamos anim, un objeto Perro de tipo Animal*/
Animal anim= new Perro("goliath") ;
anim.tipoAnimal();
anim.comunicarse();
System.out.println();

/**Creamos perro, un objeto Perro de tipo Perro*/
Perro perro=new Perro("hercules");
perro.tipoAnimal();
System.out.println();

/**Creamos animalPolimorfico, un objeto perro de tipo Animal
* asignamos una referencia ya existente*/
Animal animalPolimorfico=perro;
animalPolimorfico.tipoAnimal();
System.out.println();

/**reasignamos la referencia del objeto anim a el objeto perro
* esto es valido ya que ambos son de tipo Perro*/
perro=(Perro) anim;
perro.tipoAnimal();
System.out.println();

/**Creamos gat, un objeto Gato de tipo Animal*/
Animal gat=new Gato("pichi");
gat.tipoAnimal();
gat.comunicarse();
System.out.println();

/**Creamos cat, un objeto Gato de tipo IAnimal
* Para esto aplicamos polimorfismo usando la Interface*/
IAnimal cat = new Gato("pitufa");
cat.comunicarse();

System.out.println("\nConstante en la interfaz Animal : "+IAnimal.valor);
}
}

También podría gustarte