Tema: Casting
Ver Mensaje Individual
  #4  
Antiguo 16-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por annieruci Ver Mensaje
resulta que cuando intento acceder a los metodos de los hijos no me deja, como casteo para si es del tipo estudiante entre a un metodo y si es de tipo profesor entre a otro metodo
Quizá, y sólo quizá, haya que replantear el problema. En teoría, si tu vas a procesar una lista de objetos, deberías restringirte únicamente a las operaciones permitidas para el objeto genérico sin preocuparte por la clase específica heredada.

Esto no quiere decir que no puedas efectuar operaciones de acuerdo a la clase específica. Pero de ello se encarga el polimorfismo. Si tu clase Persona tiene un método (virtual) HazEsto, las clases derivadas (Estudiante, Profesor, etc.) pueden redefinir dicho método para adaptarse a sus necesidades específicas.

Entonces, puedes recorrer la lista en forma genérica:

Código Delphi [-]
for I := 0 to ListaPersonas.Count -1 do
  ListaPersonas[i].HazEsto;

con la seguridad de que, dependiendo del objeto, se llamará al método correcto.

// Saludos
Responder Con Cita