Dziedziczenie a skład [duplikat]

Możliwy duplikat:
Wolisz kompozycję niż dziedziczenie?

Zastanawiam się, dlaczego (lub w jakich przypadkach) należy rozważyć dziedziczenie zamiast kompozycji, gdy jest tak wiele wad:

jeśli zaimplementujemy / nadpisujemy metodę w podklasie, która wywołuje metodę nadklasy, nie ma gwarancji, że inna wersja naszej superklasy (może trochę biblioteki) nie złamie naszego kodujeśli pojawi się nowa metoda w nadklasie z taką samą sygnaturą, jaką ma metoda podklasy, ale z innym typem powrotu nasza klasa nie będzie się kompilować.

Dlatego nie mogę sobie wyobrazić, jak na Ziemi możemy na tym polegać. Autor superklasy może chcieć poprawić wydajność, a nasz kod klienta może ulec awarii.

Moje pytania to:

Jak rozwiązać te problemy (np. W standardowych bibliotekach Java)?Kiedy używać dziedziczenia i kompozycji?

questionAnswers(1)

yourAnswerToTheQuestion