Java-Vererbung: Mehrfach vs. mehrstufig
In Java ermöglicht das Konzept der Vererbung einer Klasse, Eigenschaften und Verhaltensweisen von einer anderen Klasse zu erben Klasse. Allerdings hat die Frage, ob Java Mehrfachvererbung (d. h. das Erben von mehreren Basisklassen) unterstützt, einige Debatten ausgelöst.
Aussage des Interviewers
Ein Interviewer stellte ein Szenario vor Dabei erweitert Klasse A Klasse B und Klasse B erweitert die Object-Klasse. Sie argumentierten, dass es sich um eine Mehrfachvererbung handele, da A von B und letztendlich von Object erbt.
Ihre Antwort
Ihre Antwort, in der Sie darauf hingewiesen haben, dass B von Object erbt, ist richtig geklärt dass dieses Szenario eher eine mehrstufige Vererbung als eine Mehrfachvererbung darstellt.
Mehrfachvererbung definieren
Mehrfachvererbung bezieht sich auf eine Situation, in der eine Klasse Eigenschaften und Verhaltensweisen von zwei oder mehr erbt mehr unabhängige Basisklassen. In Java wird diese Art der Vererbung nicht unterstützt.
Mehrstufige Vererbung
Mehrstufige Vererbung tritt auf, wenn eine Klasse von einer anderen Klasse erbt, die wiederum erbt aus einer anderen Klasse und so weiter. Im gegebenen Szenario erweitert A B und B erweitert Object, wodurch eine Vererbungskette anstelle mehrerer Zweige entsteht.
Implementierungsdetails
Intern löst die JVM Member auf Zugriff von einem Objekt aus, indem nach dem Mitglied im Typ des Objekts oder im Typ, von dem es erbt, gesucht wird. Im angegebenen Beispiel kann eine Instanz der Klasse A auf Mitglieder von A und B zugreifen, da B indirekt Zugriff auf von Object geerbte Mitglieder bereitstellt.
Java 8 und Standardschnittstellenmethoden
Während Java keine echte Mehrfachvererbung unterstützt, hat die Einführung von Standardschnittstellenmethoden in Java 8 einige Komplexitäten mit sich gebracht. Standardschnittstellenmethoden ermöglichen es Schnittstellen, Standardimplementierungen für ihre Methoden bereitzustellen. Wenn eine Klasse eine Schnittstelle implementiert, kann sie diese Standardmethoden erben, auch wenn sie keine eigene Implementierung bereitstellt. Dadurch können die Auswirkungen einer Mehrfachvererbung bis zu einem gewissen Grad simuliert werden. Es vermeidet jedoch einige der potenziellen Fallstricke einer echten Mehrfachvererbung, wie etwa Methodenmehrdeutigkeit und Konstruktorkonflikte.
Das obige ist der detaillierte Inhalt vonJava-Vererbung: Wird Mehrfachvererbung unterstützt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!