Was ist mehrfache Vererbung in Java?

May 22

Entwicklern entworfen Java vom Boden bis um zu handeln als eine vollständig objektorientierte Programmiersprache. Aus diesem Grund werden Konzepte der objektorientierten Programmierung integraler Bestandteil ganz wichtig in Java-Grundfunktionen. Konzepte der Klassenvererbung (und die Form-Klassenvererbung auftretenden Probleme) sind insbesondere grundsätzliche Bedenken an den Java-Programmierer. Eins von diesen Problemen, mehrfache Vererbung kann umgangen werden, Verständnis der Funktionsweise von Vererbung und Java Schnittstellen verwenden.

OOP und Vererbung

Objektorientierte Programmierung verwendet das Konzept der Vererbung zum Erweitern der Funktionalität von Objekten. Wenn ein Programmierer erstellt ein Objekt zu prüfen; Sie können später feststellen, dass sie ein sehr ähnliches Objekt mit nur geringfügigen Unterschieden (vielleicht zum Erweitern der Funktionalität des vorherigen Objekts in einen neuen Kontext) erstellen muss. Dies ist, kommen die Vererbung. Ein Objekt, das ein Programmierer "leitet sich von einem anderen"base"Objekt" erbt die Methoden und Variablen der Klasse, und dann Hinzufügen mehr Funktionalität (wie im folgenden Java-Beispiel):

öffentliche Klasse Sphäre {}

public void Radius;

}

öffentliche Klasse Ball erweitert Sphäre {}

publicstring Farbe; Ball fügt die Variable "Farbe", sondern nutzt auch die Variable "Radius"

}

Mehrfache Vererbung

Irgendwann könnte ein Programmierer versucht, mehrere Klassen eine einzelne Klasse abgeleitet werden. Dies ist bekannt als "mehrfache Vererbung" und zwar scheinbar nützlich, kann Probleme verursachen, beispielsweise den berüchtigten "Diamant Problem." Das Diamant-Problem tritt auf, wenn zwei Klassen von der gleichen Klasse (z. B. Klasse B und C ableiten von Klasse A), während ein anderer erben (D)-Klasse erbt von B und C. Wenn ein D-Objekt erstellt wird, das System behandelt es als Typ der Basisklasse (Klasse "Ball" ist eine "Kugel", zum Beispiel). In der Diamant-Problem, das System kann nicht bestimmen maßgeblich welche Klasse D ist (ist es, Typ A-B-D oder Typ A-C-D?), wodurch Probleme.

Java und Mehrfachvererbung

Wegen der Probleme mit Mehrfachvererbung erlaubt Java keine Mehrfachvererbung. Jedoch kann tatsächlich ableiten von Klassen von mehreren Basisklassen in einen sicheren Weg durch den Einsatz von "Schnittstellen." erfolgen Eine Schnittstelle ist eine Klasse ähnlich, außer dass es tut nur die Struktur die Klasse jedoch nicht den eigentlichen Code definiert. Eine Basisklasse, die eine Schnittstelle implementiert nicht unbedingt "erbt" die Funktionalität der Schnittstelle: es verspricht nur, seine Struktur zu verwenden. Da eine Klasse implementiert eine Schnittstelle nicht von einer anderen Klasse erbt (und dies kein Typ der Basisklasse ist), kann der Programmierer mehrere Schnittstellen, die mit der gleichen Klasse implementieren.

Beispiel: Vererbung und Schnittstellen

Das folgende Beispiel zeigt den Unterschied zwischen Objektvererbung und einer Schnittstelle. Wichtig ist, erhält erbt von einer anderen Zugriff auf die Basisklasse, weil es im Wesentlichen ein Typ dieser Klasse (wie in die Klassen "Ball" und "Kugel") wird. Eine Klasse, die eine Schnittstelle implementiert verspricht nur die Struktur der Schnittstelle implementieren: Es ist keine Art dieser Schnittstelle:

Schnittstelle grundlegende {}

Int doubleA(); Beachten Sie: keine eigentlichen Code ist in der Schnittstelle definiert

}

öffentliche Klasse B implementiert grundlegende {}

public void;

public void doubleA() //Class B muss die Methode "doubleA()", um "Basic" implementieren definieren.

{zurück ein * 2;}

}