? Entwicklerentwickelt Java von Grund auf als eine vollständige objektorientierte Programmiersprache handeln . Aus diesem Grund werden Konzepte integraler Bestandteil der objektorientierten Programmierung sehr wichtig in grundlegenden Java- Funktionalität . Insbesondere sind Konzepte der Klassenvererbung ( und die Probleme, die Form Klassenvererbung auftreten ) Grundanliegen der Java-Programmierer . Eines dieser Probleme , Mehrfachvererbung , kann mit einem Verständnis , wie die Vererbung funktioniert umgangen werden , und wie man Java-Schnittstellen verwenden . OOP und Vererbung
Objektorientierte Programmierung verwendet das Konzept der Vererbung , um die Funktionalität von Objekten erweitern . Betrachten wir , wenn ein Programmierer ein Objekt erstellt , sie kann später feststellen, dass sie müssen eine sehr ähnliche Aufgabe mit nur geringe Unterschiede (vielleicht , um die Funktionalität der vorherigen Objekt in einen neuen Kontext zu verlängern) zu erstellen. Dies ist, wo Erbe kommen in. Ein Objekt, das ein Programmierer "leitet " von einem anderen "Basis"- Objekt erbt die Methoden und Variablen dieser Klasse , und können dann mehr Funktionalität , um es ( wie im folgenden Beispiel Java ):
public class Sphere {
public int Radius ;
}
public class Kugel erstreckt Sphere {
public string Farbe; //Ball fügt die "Farbe " variable , sondern nutzt auch die "radius " variable
}
Mehrfachvererbung
irgendwann könnte ein Programmierer zu werden versucht zum Ableiten einer einzigen Klasse von mehreren Klassen . Dies wird als " Mehrfachvererbung " bekannt und während scheinbar nützlich , kann es zu Problemen , wie dem berüchtigten verursachen "diamond Problem." Der Diamant Problem tritt auf, wenn zwei Klassen aus der gleichen Klasse (zB Klasse B und C , die sich aus der Klasse A) , erben , während eine andere Klasse (D) erbt von beiden B und C. Wenn ein D -Objekt erstellt wird, behandelt das System sie als eine Art von der Basis (Klasse "Ball " ist ein "Sphere ", zum Beispiel). In der Diamant- Problem , kann das System nicht entscheidend bestimmen, welche Klasse D ist ( es wird geben ABD oder ACD -Typ ? ) Was zu Problemen führt .
Java und Mehrfachvererbung
Wegen der Probleme mit Mehrfachvererbung ist Java nicht erlauben Mehrfachvererbung. Allerdings kann tatsächlich Ableiten von Klassen aus mehreren Basisklassen in einer sicheren Art und Weise durch den Einsatz von erreicht werden " Schnittstellen ". Eine Schnittstelle ähnelt einer Klasse , außer dass es nur definiert die Struktur der Klasse, aber nicht der eigentliche Code . Eine Basisklasse, die eine Schnittstelle nicht notwendigerweise " erben " die Funktionalität der Schnittstelle implementiert : nur verspricht ihrer Struktur verwenden . Da eine Klasse eine Schnittstelle implementiert nicht von einer anderen Klasse ( und das ist nicht eine Art von der Basisklasse ) erben , dann kann der Programmierer mehrere Schnittstellen implementieren unter Verwendung der gleichen Klasse
Beispiel: . Erbschafts-und Schnittstellen
das folgende Beispiel zeigt den Unterschied zwischen Objekt Vererbung und einer Schnittstelle. Wichtig ist, eine Klasse, die von einem anderen erhält Zugang zu der Basis -Klasse erbt , weil es wird im Wesentlichen eine Art von dieser Klasse (wie in der "Ball " und " Sphere" -Klassen ) . Eine Klasse, die eine Schnittstelle implementiert nur verspricht, die Struktur der Schnittstelle implementieren : Es ist nicht eine Art von dieser Schnittstelle :
Interface Basic { int
doubleA (); //Hinweis : keine eigentliche Code wird in der Schnittstelle
}
public class B definiert implementiert Basis {
public int a;
public int doubleA () //Klasse B muss definieren die " doubleA ()" Methode "Basic"
implementieren {return a * 2 ;} }