package com.trifulcas.herencia.interfaces;
public abstract class Animal {
private String nombre;
public Animal(String nombre) {
super();
this.nombre = nombre;
}
/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return "Animal [nombre=" + nombre + "]";
}
public abstract void hacerRuido();
}
package com.trifulcas.herencia.interfaces;
public class Pato extends Animal implements IVolar, INadar, ICorrer {
public Pato(String nombre) {
super(nombre);
// TODO Auto-generated constructor stub
}
// Lo implemento porque implemento el interfaz IVolar
@Override
public void volar() {
System.out.println("Un patito volando");
}
// Lo implemento porque implemento el interfaz ICorrer
@Override
public void correr() {
System.out.println("Un patito corriendo");
}
// Lo implemento porque implemento el interfaz INadar
@Override
public void nadar() {
System.out.println("Un patito nadando");
}
// Lo tengo que implementar porque lo tiene la clase madre
// Animal
@Override
public void hacerRuido() {
System.out.println("Cua cua");
}
}
package com.trifulcas.herencia.interfaces;
public class Perro extends Animal implements ICorrer, INadar {
public Perro(String nombre) {
super(nombre);
// TODO Auto-generated constructor stub
}
// Lo implemento porque implemento el interfaz ICorrer
@Override
public void correr() {
System.out.println("Un perrito corriendo");
}
// Lo implemento porque implemento el interfaz INadar
@Override
public void nadar() {
System.out.println("Un perrito nadando");
}
// Método abstracto de la clase madre
@Override
public void hacerRuido() {
System.out.println("Guau guau");
}
}