Effektives Trait-Design
Dass viele Sprachen (wie auch Java) keine Mehrfachvererbung implementieren, liegt unter anderem an den Problemen, die man im Zusammenhang mit der Mehrfachvererbung in C++ erfahren hat. Eines dieser Probleme ist der in Abbildung 13.1 dargestellte sogenannte Diamant des Todes (diamond of death).
Abbildung 13.1 »Diamant des Todes« in Sprachen mit Mehrfachvererbung
In C++ ruft jeder Konstruktor von C
einen Konstruktor von B1
und einen Konstruktor von B2
(explizit oder implizit) auf. Alle Konstruktoren von B1
und B2
rufen einen Konstruktor von A
auf. Foglich können in einer naiven Implementierung der Mehrfachvererbung die Felder ...
Get Programmieren mit Scala now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.