Ver Mensaje Individual
  #5  
Antiguo 05-05-2006
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 Al González
Técnicamente no se trata de una modificación a la clase A sino a la jerarquía de una o más clases. Se crea una nueva clase A2 como hija de A, pero usada como nuevo padre directo de B y C. Es decir, A2 se inserta en la jerarquía de clases entre A y B, y entre A y C. Ninguna clase es modificada si entendemos por modificación la alteración del código fuente que una clase añade, solo les cambiamos el padre a las clases que deseamos hereden nueva funcionalidad. Una especie de manipulación genética, claro, sin los altos riesgos que eso conlleva en la biología real .
Claro, no pensaba que la propuesta fuera simplemente alterar el código de A. Pero vamos a ver, una clase (o su interfaz) representa en cierta medida un contrato al cual debe ajustarse. La clase A ciertamente no romperá dicho contrato pero sí lo harán las clases B y C junto con todos sus descendientes.

Ahora bien, la idea original, si te he entendido, es:

Agregar funcionalidad común a las clases B y C sin repetir código. De cualquier forma, agregar funcionalidad significa derivar una nueva clase. Así que de cualquier manera estaríamos hablando de crear clases B' y C' descendientes de B y C. Pero en tal caso podríamos crear A1 descendiente de A y luego B' descendiente de A1 y B y C' descendiente de A1 y C. ¡Ah! Pero Delphi no tiene herencia múltiple. Bueno, entonces, ¿no sería eso, la herencia múltiple, lo que habría que pedir?

// Saludos
Responder Con Cita