Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/02/2010, 11:30
devshared
 
Fecha de Ingreso: enero-2010
Mensajes: 25
Antigüedad: 14 años, 3 meses
Puntos: 0
Busqueda Respuesta: esto es polimorfismo?

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

Para que realmente quede claro el ejemplo de polimorfismo, se deberían asignar todos los objetos a variables del tipo de la clase padre, así

Cantante Canta = new Cantante();
Cantante coro = new Corista();
Cantante ninito = new Nino();

de esta forma, la llamada a ninito.Cantar(), a pesar de ser ninito de tipo Cantante, llama en realidad al método Cantar() de Nino. Y ese es el polimorfismo, que teniendo una variable del tipo de la clase padre, en realidad está llamando a un método de una clase hija.

Se bueno.
Muy correcto lo que dice chuidiang.
Es mas existen distintos tipos de polimorfismo
-Polimorfismo de asignación (variables polimorfas)
– Polimorfismo puro (función polimorfa)
– Polimorfismo ad hoc (sobrecarga)
– Polimorfismo de inclusión (redefinición)
– Polimorfismo paramétrico (genericidad)
El polimorfismo de asignación seria asi
Cantante persona;
persona = new Cantante();
persona.cantar();
persona = new Corista();
persona.cantar();
persona = new Nino()
persona.cantar();

esto es asi gracias a la herencia , la comprobación estática de tipos y el enlace dinámico
La herencia como mecanismo de extensión.
La comprobación estatica de tipos garantiza que almenos el mensaje persona.cantar() sea valido
El enlace dinámico nos garantiza la ejecución de la versión mas adecuada del método


Saludos


-----------------------------------
Visiten www.devshared.net

Última edición por devshared; 06/02/2010 a las 12:37