Java-Vererbung: Einzelvererbung vs. Mehrfachvererbung
Während eines Vorstellungsgesprächs wurde ein Kandidat gefragt, ob Java Mehrfachvererbung unterstützt. Der Kandidat antwortete mit „Nein“ und verwies darauf, dass jede Klasse in Java Object erweitert und eine andere Klasse wie „Klasse A erweitert Klasse B“ erweitert, was bedeutet, dass Klasse A sowohl von Klasse B als auch von Objekt erbt, was als mehrstufige Vererbung und nicht als Mehrfachvererbung betrachtet wird .
Der Interviewer stellte diese Antwort jedoch in Frage und argumentierte, dass, da Klasse B Object erweitert, die Erweiterung von Klasse B in Klasse A dazu führt, dass Klasse A sowohl von Klasse B als auch von Objekt erbt, was im Wesentlichen eine Mehrfachvererbung darstellt.
Klarstellung
Die Antwort des Kandidaten war im Kontext des konkreten Beispiels des Interviewers weitgehend richtig. Mehrfachvererbung bezieht sich auf eine Situation, in der eine Klasse von zwei oder mehr unabhängigen Basen erbt und so eine „Diamant“-Struktur in der Vererbungshierarchie erstellt.
Java's Einzelvererbung mit mehreren Ebenen
In Java erfolgt die Vererbung jedoch einstufig mit mehreren Ebenen. Klasse A erweitert Klasse B, die wiederum Objekt erweitert. Dadurch entsteht eine Vererbungskette, aber Klasse A erbt nur direkt von Klasse B und indirekt von Object. Dies ist keine Mehrfachvererbung.
Schnittstellen und „Standard“-Methoden
Während Java die herkömmliche Mehrfachvererbung nicht unterstützt, verfügt es über Schnittstellen und „Standard“-Methoden für Schnittstellen (eingeführt in Java 8). Mit dieser Funktion können Klassen mehrere Schnittstellen implementieren und ihre jeweiligen Standardmethoden erben.
Dies ist jedoch immer noch keine echte Mehrfachvererbung, weil:
Fazit
Das Vererbungsmodell von Java ermöglicht eine einzelne Vererbung mit mehreren Ebenen Durch das Schlüsselwort „extends“ und Schnittstellen mit Standardmethoden wird eine Form der „Lichtmehrfachvererbung“ bereitgestellt. Es ist jedoch wichtig, diese Konzepte von der echten Mehrfachvererbung zu unterscheiden, bei der eine Klasse von mehreren unabhängigen Basen erben kann.
Das obige ist der detaillierte Inhalt vonUnterstützt Java Mehrfachvererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!