Lección 6: Composición sobre herencia
public class Car : Engine parece un atajo cómodo — hasta que descubres que cada método del motor se filtra al coche, que cada cambio del motor rompe el coche, y que un coche con dos tipos de motor se vuelve imposible. En esta lección reemplazamos la herencia por un campo: el coche sostendrá un motor
La composición es como una caja de herramientas: en lugar de nacer 'hombre-martillo', un profesional sostiene un martillo y lo cambia cuando hace falta. La herencia suelda el martillo a la mano para siempre.
- composición sobre herencia
- Cuando la relación real es 'tiene un', se sostiene el objeto como campo privado y se le delega — en lugar de heredar y arrastrar una jerarquía frágil y una API que se filtra.
- relación 'tiene un' (has-a)
- Una relación donde un objeto sostiene otro objeto como campo y lo usa — a diferencia de 'es un' (is-a), donde una clase hereda y afirma ser un tipo de su base.