@Crozin : Czy nie uważasz że nadużycia wielodziedziczenia są po prostu winą niedoświadczonego programisty niż winą samego języka ? Pozwól, że zacytuję swojego mentora: (Chryste ratuj jeśli wywołam kolejną wojnę hehehe

)
Odn. wielodziedziczenia niech tylko zacytuję pewnego człowieka który o dziedziczeniu napisał w pewnym tomie klikadziesiąt stron:
"Często pojawia się sytuacja wymagająca połączenia ze sobą kilku abstrakcji: na przykład klasa może modelować 'pracownika' któego można traktować zarówno jako "osobę" , jak i jako "koszt" prowadzenia działalności jaki można odliczyć od podatku. Właśnie tu z pomocą przychodzi dziedziczenie wielokrotne [...]"
"Taka możliwość nazywana dziedziczeniem wielokrotnym, jest niezbędna do tworzenia odpornych obiektowych architektur poprzez łączenie ze sobą różnych abstrakcji [...]"
"Na początek musisz zrozumieć kiedy dziedziczenie wielokrotne jest przydatne. Przyjrzyjmy się zatem [...] . Taki przegląd jest bardzo potrzebny i to bynajmniej nie dlatego, żebyś docenił elegancję i prostotę dziedziczenia wielokrotnego czy też konieczność jego stosowania. Te kwestie są oczywiste dla każdego, kto miał czas i ochotę, przyjrzeć się bliżej zagadnieniu [...]"
"Ważniejsze jest to żeby obalić powszechny pogląd (rozpowszechniany głównie przez osoby posługujące się językami, które nie obsługują takiej postaci dziedziczenia), że dziedziczenie wielokrotne jest trudne, tajemnicze, podatne na błędy i przypomina obiektową wersję polecenia 'goto'.[...]"
"Zobaczysz, że wcale nie będziemy mieli problemów ze znalezieniem wartościowych przykładów . Problemem będzie raczej zatrzymanie powodzi dobrych pomysłów, która pojawi się, gdy tylko naruszymy tamę".
Źródło: Bertrand Meyer "programowanie zorientowane obiektowo"
Autor podaje na początek złe przykłady:
Nauczyciel extends Asystent
Student extends Asystent
OsobaZwiazanaZuniwersytetem extends Nauczyciel, Student
Potem podaje dobry (e):
Okna są jednocześnie drzewami, elementami list i prostokątami.
Samolot może być również środkiem trwałym.
Złożone figury.
(Rozważań na temat NUMERIC i COMPARABLE nie opisuje nie chce mi się cytować kurka całej książki ) :-)
Moim zdaniem wielodziedziczenie jest przydatne dla większych i skomplikowanych systemów (nie tam CMS, CRM, sklep internetowy, kolejny framework

) . Należy umieć wykorzystać co jezyk daje nam do dyspozycji - osobiście parę razy zdarzyło mi się ubolewać nad faktem że PHP nie ma wielodziedziczenia :-) , z prostej przyczyny: wielodziedziczenie sprawiłoby, że projekt byłby bardziej przejrzysty i logiczny, zamiast ratować się innego rodzaju rozwiązaniem.