Bei der Implementierung der Schnittstelle verwenden wir die Schnittstellensyntax, um die Schnittstelle von der Klassendefinition zu trennen und ein Subjekt zu bilden. interface stellt Schnittstellenspezifikationen für Klassen bereit.
Bei der Vererbung führen wir den Vererbungsmechanismus ein, um die Wiederverwendbarkeit des Programms zu verbessern. Die Vererbung basierte damals auf Klassen. Die Schnittstellenschnittstelle kann auch geerbt werden, um die ursprüngliche Schnittstelle zu erweitern.
Schnittstellenvererbung
Die Schnittstellenvererbung (Vererbung) ist der Klassenvererbung sehr ähnlich, bei der neue Schnittstellenmethodenprototypen basierend auf der geerbten Schnittstelle hinzugefügt werden. Als Originalschnittstelle verwenden wir beispielsweise Cup:
Kopieren Sie den Codecode wie folgt:
Schnittstellenbecher {
void addWater(int w);
void drinkWater(int w);
}
Basierend auf der Vererbung von Cup definieren wir eine neue Schnittstelle für Cups mit Skalen, MetricCup
Die Schnittstelle ist wie folgt:
Kopieren Sie den Codecode wie folgt:
Schnittstelle MetricCup erweitert Cup
{
int WaterContent();
}
Wir haben einen neuen Methodenprototyp WaterContent() hinzugefügt, der eine Ganzzahl (Wassermenge) zurückgibt.
Mehrfachvererbung der Schnittstelle
Bei der Java-Klassenvererbung kann eine abgeleitete Klasse nur eine Basisklasse haben. Mit anderen Worten: Eine Klasse kann nicht gleichzeitig von mehr als einer Klasse erben. In Java kann eine Schnittstelle mehr als eine Schnittstelle gleichzeitig erben, was als Mehrfachvererbung bezeichnet wird.
Wir haben zum Beispiel die folgende Player-Schnittstelle:
Kopieren Sie den Codecode wie folgt:
Schnittstelle Spieler
{
void play();
}
Wir fügen eine neue MusicCup-Schnittstelle hinzu. Es verfügt sowohl über eine Cup-Schnittstelle als auch eine Player-Schnittstelle und fügt einen Prototyp der display()-Methode hinzu.
Kopieren Sie den Codecode wie folgt:
Schnittstelle MusicCup erweitert Cup, Player
{
void display();
}
(Informationen zur Verwendung der Schnittstelle finden Sie unter Schnittstelle implementieren.)
abstrakte Klasse
Im Leben haben wir einige sehr abstrakte Konzepte. Diese abstrakten Konzepte sind oft eine Sammlung vieler Klassen, wie zum Beispiel:
1. Getreide (kann Mais, Weizen, Reis sein)
2. Grafiken (können Dreiecke, Kreise, Quadrate sein)
Als weiteres Beispiel haben wir zuvor ein Beispiel gegeben:
1. Menschen (können Männer oder Frauen sein)
Bei der Organisation solcher Beziehungen können wir Vererbung nutzen, wie zum Beispiel:
Nach unserem gesunden Menschenverstand:
1. Der Begriff „Objekt der Food-Klasse“ ist abstrakt. Ein solches Objekt sollte zu einer der Unterklassen Mais, Reis und Weizen gehören.
2. Die Food-Klasse verfügt über die Methode eat() (Essen kann gegessen werden). Eine solche Aktion ist jedoch abstrakt. Die spezifischen Arten der Nahrungsaufnahme sind unterschiedlich. Beispielsweise muss Mais geschält und gegessen werden und Weizen muss zu Mehl gemahlen werden. Wir müssen die eat()-Methode der Food-Klasse in jeder Klasse überschreiben.
abstrakt und konkret
Java stellt die Syntax abstrakter Klassen bereit, um die Abstraktion von Klassen und ihren Methoden zu veranschaulichen. Zum Beispiel:
Kopieren Sie den Codecode wie folgt:
abstrakte Klasse Essen {
öffentliches abstraktes void eat();
öffentliche Leere happyFood();
{
System.out.println("Gut! Iss mich!");
}
}
Methoden in einer Klasse können abstrakt deklariert werden, wie oben eat(). Zu diesem Zeitpunkt müssen wir die Methode nicht speziell definieren, sondern nur den Prototyp der Methode bereitstellen. Dies ähnelt Schnittstellen. Wenn wir diese Klasse beispielsweise in der Corn-Klasse erben, müssen wir eine spezifische Definition der eat()-Methode bereitstellen.
Eine andere Methode in der Klasse happyFood() ist nicht vorhanden
Wenn eine abstrakte Methode in einer Klasse erscheint, muss das Schlüsselwort abstract zur Deklaration dieser Klasse hinzugefügt werden, andernfalls meldet Java einen Fehler. Eine abstrakte Klasse kann nicht zum Erstellen von Objekten verwendet werden.
Vererbung abstrakter Klassen
Wir können eine abstrakte Klasse genauso erben wie eine Klasse. Wir müssen vollständige Methodendefinitionen verwenden, um die abstrakten Methoden in der abstrakten Klasse abzudecken, andernfalls ist die abgeleitete Klasse immer noch eine abstrakte Klasse.
Abstrakte Klassen können in ihrer Definition Datenelemente enthalten. Die Vererbung von Datenelementen ist die gleiche wie bei einer normalen Klasse.
Zusammenfassen
Schnittstellenvererbung, Mehrfachvererbung
abstrakte Methode, abstrakte Klasse