Komposition erstellt Verhalten durch Halten anderer Objekte (eine "has-a"-Beziehung) und Delegieren an sie. Vererbung erwirbt Verhalten durch Erweitern einer Klasse ("is-a"). Der Rat "Komposition bevorzugen" existiert, weil Vererbung enge, zerbrechliche Kopplung zu einer Basisklasse erzeugt, während Komposition flexibel bleibt.
Das Problem mit Vererbung zur Wiederverwendung
<T> <T> {
{ add(x); }
T { remove(size() - ); }
}
