Al final, parece que me ha quedado clara la estructura que debe seguir la agenda del entregable de la primera parte del curso...
Dos clases, Persona y Empresa, que tienen una interfaz ObtenerDatos.
Dos clases, PersonaExt y EmpresaExt, que son hijas de Persona y Empresa (respectivamente) y que tienen una interfaz ObtenerDatosExt que es hija de ObtenerDatos.
Y de todo esto, tenemos una clase Agenda que implementa ObtenerDatosExt.
Si he entendido todo el proceso (espero que si), ObtenerDatosExt puede acceder, por ser hija, a los métodos de ObtenerDatos, que además al ser interfaz de Persona y Empresa, nos "abre" las puertas a sus métodos.
A su vez, tenemos PersonaExt y EmpresaExt, a través de las cuales, y por ser sus hijas, accedemos a sus métodos.
La clase Agenda es la que se encarga, en tiempo de ejecución, y con un arraylist de ObtenerDatosExt, la de determinar si el objeto que se le está pasando es un PersonaExt o EmpresaExt.
Al final, mi primera solución al problema, de la que desconfiaba (y con razón, tenía que sacar métodos propios de la clase en el propio main), no tenía nada que ver con el entramado en que ha acabado.
No se si estará bien o mal mi planteamiento, pero como necesito dormir antes de irme a currar... mañana será otro día.
Próximo reto: definir las excepciones, aclarar la función de la edad y documentar!!!
No hay comentarios:
Publicar un comentario