public interface IVolar {
public void volar();
}
public interface INadar {
public void nadar();
}
public interface ICorrer {
public void correr();
}
public interface IActivo {
public boolean esActivo();
}
public interface ISaludo {
public void hola();
public void adios();
}
public class Delfin implements INadar, IActivo{
@Override
public void nadar() {
System.out.println("Soy un delfín nadando en el inmenso mar");
}
@Override
public boolean esActivo() {
// TODO Auto-generated method stub
return true;
}
}
public class Pato implements IVolar, ICorrer, INadar, IActivo{
@Override
public void nadar() {
System.out.println("Pato Nadando");
}
@Override
public void correr() {
System.out.println("Corriendo");
}
@Override
public void volar() {
System.out.println("Volando");
}
@Override
public boolean esActivo() {
// TODO Auto-generated method stub
return true;
}
}
public class Submarino implements INadar, IActivo {
@Override
public void nadar() {
System.out.println("Inmersión!!");
}
@Override
public boolean esActivo() {
// TODO Auto-generated method stub
return false;
}
}
public static void main(String[] args) {
// El mismo polimorfismo que teniamos con la herencia
// Lo tenemos con los interfaces
ArrayList<INadar> cosas = new ArrayList<>();
comprobar(new Delfin());
comprobar(new Pato());
comprobar(new Submarino());
List<String> alumnos = new ArrayList<String>();
Saludos pepe=new Saludos();
pepe.hola();
ISaludo ana=new Saludos();
ana.adios();
}
public static void comprobar(IActivo elemento) {
if (elemento.esActivo()) {
System.out.println("A tope con la actividad");
}
}