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).

»Diamant des Todes« in Sprachen mit Mehrfachvererbung

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.