Cita:
Empezado por annieruci
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