Composição constrói comportamento possuindo outros objetos (uma relação "tem-um") e delegando para eles. Herança adquire comportamento estendendo uma classe ("é-um"). O conselho "favoreça composição" existe porque herança cria acoplamento apertado e frágil a uma classe base, enquanto composição permanece flexível.
O problema com herança para reutilização
<T> <T> {
{ add(x); }
T { remove(size() - ); }
}
