Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/10/2013, 12:25
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Especificar más información a la abstracción - Modelo de Clases

Cita:
... aunque si sobrecargo el get/set de CocheAutomatico, tendría que tener un atributo conductor de tipo ConductorAutomatico (que es lo equivalente a una relación entre CocheAutomatico y ConductorAutomatico)
No, aunque Conductor conductor sea privado, existe en tu objeto CocheAutomatico. No es accesible directamente pero sí mediante el get/set. Si añades una referencia ConductorAutomatico, tendrás un atributo Conductor vacío (lógico) y un ConductorAutomatico. Entonces ¿para qué heredar?

Cita:
¿Es correcto esta doble relación? Es decir, tanto a nivel Coche --> Conductor y CocheAutomatico --> ConductorAutomatico
En principio NO si heredas, porque lo que tendrás será

Coche --> Conductor
CocheAutomatico --> Conductor

con el filtro en el set te puedes asegurar de que nunca reciba un Conductor que no sea ConductorAutomatico, pero no sé si teóricamente se considera equivalente a la relación que buscas. Funcionar funciona, el resto es un poco a qué huelen las nubes.

Me da la impresión de que partes de un mal planteamiento, si existe la clase Conductor es que quieres que haya una serie de clases conductor que comparten métodos comunes, y para eso te da igual que referenciar un objeto ConductorAutomatico como Conductor. Cuando quieras usar métodos específicos de ConductorAutomatico simplemente haces un cast a ConductorAutomatico (ya te aseguraste mediante el set que el conductor de CocheAutomatico es ConductorAutomatico).
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.