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"); } }