domingo, 20 de mayo de 2012

Polimorfismo con Interface

Animal.java

public abstract class Animal {

    protected String foto;
    protected String comida;
    protected String localizacion;
    protected String tamano;

    public Animal(String foto, String comida, String localizacion, String tamano) {
        this.foto = foto;
        this.comida = comida;
        this.localizacion = localizacion;
        this.tamano = tamano;
    }

    public abstract void comer();

    public abstract void dormir();

    public abstract void comunicar();

}

Canino.java

public abstract class Canino extends Animal{

   public Canino(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

   public void comer(){
       System.out.println("Como carne");
   }

}

Mascota.java

public interface Mascota {

    public void jugar();
    public void vacunar();

}

Perro.java

public class Perro extends Canino implements Mascota{

    public Perro(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

     public void dormir(){
         System.out.println("Duermo en perrera");
     }

    public void comunicar(){
        System.out.println("Ladro");
    }

    public void jugar(){
        System.out.println("Juega en el jardin");
    }

    public void vacunar(){}
   
}

Gato.java

public class Gato extends Canino implements Mascota{

    public Gato(String foto, String comida, String localizacion, String tamano) {
        super(foto, comida, localizacion, tamano);
    }

     public void dormir(){
         System.out.println("Duermo en el tejado");
     }

    public void comunicar(){
        System.out.println("Maullo");
    }

    public void jugar(){
        System.out.println("Juega en el sofa");
    }

    public void vacunar(){
        System.out.println("Rabia");
    }

}

Main.java

public class Main {

  public static void main(String[] args) {

      Mascota [] miMascota = new Mascota[2];

      miMascota[0] = new Perro("/images/perro.jpg", "Nutrecan", "Mi casa", "Grande");
      miMascota[1] = new Gato("/images/gato.jpg", "Nutrecat", "Mi casa", "Pequeno");

      miMascota[1].jugar();
      miMascota[1].vacunar();

      ((Gato)miMascota[1]).comer();
      ((Gato)miMascota[1]).comunicar();
      ((Gato)miMascota[1]).dormir();

    }
}

Dibujemos el diagrama de clases

No hay comentarios:

Publicar un comentario

Muchas gracias por su comentario, será revisado y pronto se publicará.