Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/07/2012, 22:22
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: polimorfismo java

Hola:

Si Empleado tiene un metodo() y su clase hija tiene el mismo metodo(), y tienes un EmpleadoBaseMasComision metido en el array de Empleado, puedes hacer perfectamente

Código java:
Ver original
  1. for (Empleado empleadoActual : empleados){
  2.    empleadoActual.metodo();
  3. }

Como Empleado tiene metodo(), puedes llamarlo sin hacer la conversión. Como el objeto realmente es un EmpleadoBaseMasComision, en realidad se está llamando a metodo() de EmpleadoBaseMasComision. Esto es en realidad el polimorfismo, tener una clase hija dentro de una variable del tipo de la clase padre, llamar "aparentemente" al metodo() de padre y en realidad se ejecuta el metodo() de la clase hija.

La conversion es necesaria cuando quieres llamar a un otroMetodo() que tiene la clase hija, pero no existe en la clase padre, entonces

empleadoActual.otroMetodo()

da error, puesto que Empleado no tiene ese metodo, es necesario hacer

((EmpleadoBaseMasComision)empleadoActual).otroMeto do();

Se bueno.
__________________
Apuntes Java
Wiki de Programación