Diamond-Problem
Das Diamond-Problem ist ein Problem bei der Verwendung von Mehrfachvererbung im Rahmen der Objektorientierten Programmierung und Wissensmodellierung. Es kann auftreten wenn eine Klasse auf zwei verschiedenen Vererbungspfaden von ein und derselben Basisklasse abstammt. Zeichnet man die Vererbungsbeziehungen zwischen den Klassen in einem Diagram auf, so ergibt sich die Form einer Rautenform (englisch rhombus oder diamond), nach der das Diamond-Problem benannt ist.
Ein häufig zur Beschreibung von Mehrfachvererbung genanntes Beispiel ist ein Amphibienfahrzeugs, das sowohl die Eigenschaften eines Landfahrzeuges als auch die eines Wasserfahrzeuges erbt. Das Diamond-Problem tritt hierbei auf, wenn beide von der Klasse der Fahrzeuge abstammen, die alle eine Methode zum Fortbewegen besitzen. Die Frage ist nun, ob sich ein Aphibienfahrzeug wie ein Landfahrzeug oder ein Wasserfahrzeug oder wie ein Landfahrzeug und ein Wasserfahrzeug fortbewegt. Diese Mehrdeutigkeit kann nur im Einzelfall gelöst werden; so hat ein Amphibienfahrzeug beispielsweise zwei Fortbewegungsarten aber nur ein Gewicht, obwohl sowohl Landfahrzeug als auch Wasserfahrzeug ein Gewicht haben.