Composición construye comportamiento manteniendo otros objetos (una relación "has-a") y delegando hacia ellos. Herencia adquiere comportamiento extendiendo una clase ("is-a"). El consejo "favorecer composición" existe porque la herencia crea un acoplamiento fuerte y frágil a una clase base, mientras que la composición permanece flexible.
El problema con la herencia para la reutilización
<T> <T> {
{ add(x); }
T { remove(size() - ); }
}
