Interfaces III  

Posted by Danny in

Podemos ver que construimos un objeto (p) de tipo persona y se lo pasamos a la función hacerCantar. Esta función espera recibir un objeto Cantante, y una persona lo es, por tanto la recibe y llama al método cantar del objeto recibido.

Probemos a intentar pasar a la función hacerCantar en lugar del objeto Persona (p) un objeto String (texto), resultado: error de compilación.

Contruyamos ahora la clase Canario (Canario.java), pensando que también sabe cantar:

public class Canario implements Cantante

{

private int peso;

/* Aqui vendrían el resto de atributos y funciones propias de un canario */

public void cantar()

{

System.out.println("Pio Pio Pio");

}

}

Y ahora agreguemos en la clase ArranqueInterfaz el siguiente código, para crear un objeto canario y pasarselo a la función hacerCantar:

Canario c = new Canario();

hacerCantar(c);

Tras ejecutar comprobaremos que podemos pasar tanto una Persona como un Canario a la función hacerCantar, de tal manera que dentro de dicha función sólo accedamos a las funciones del interfaz y no habrá problemas. Por ejemplo, si pusiéramos:

c.SetNombre("Luis")

dentro de la función hacerPersona, podría funcionar si pasásemos un objeto Persona, pero no si pasamos uno de tipo Canario.




Entradas relacionadas:

0 comentarios

Publicar un comentario

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Archives