Eine Schnittstelle ist ein Referenztyp, der verwendet wird, um einen Vertrag mit einer Klasse durchzusetzen. Ein Vertrag bezieht sich auf die Verpflichtung, die Methoden zu implementieren, die eine Schnittstelle definiert.

Schnittstellen bieten eine Abstraktion zwischen den Methoden, die sie definieren und wie der Benutzer sie in einer Klasse implementiert. Ein praktischer Anwendungsfall hierfür sind APIs (Application Programming Interfaces).

APIs ermöglichen Ihrem Programm, mit anderen Programmen zu kommunizieren, ohne zu wissen, wie diese implementiert sind. Dies ist sowohl aus proprietären Gründen (für das Unternehmen, das die Rechte besitzt) als auch für eine einfache Entwicklung Ihrerseits wichtig.

Werfen wir einen Blick auf die Verwendung von Java-Schnittstellen.

Schnittstellen definieren

Um eine Schnittstelle zu deklarieren, platzieren Sie das Schlüsselwort Schnittstelle vor dem Schnittstellennamen.

Schnittstelle Auto{
// Konstantendeklarationen, falls vorhanden
int-Reifen = 4;
// Methodensignaturen
int-Lichter (int-Helligkeit);
int turn (int reifen, string richtung){
// etwas Code
}
}

In Ihrem Interface-Header können Sie auch die Sichtbarkeitsstufe vor dem Keyword angeben Schnittstelle.

Die Werte in einer Schnittstelle sind konstant. Diese Werte sind standardmäßig öffentlich, statisch und Finale. Daher ist es nicht erforderlich, diese Schlüsselwörter beim Deklarieren von Werten im Hauptteil einer Schnittstelle zu verwenden.

Verwandt: So verwalten Sie den Variablenbereich in Java

Der Körper einer Schnittstelle kann auch Standard, abstrakt, statisch Methoden. Diese Methoden sind standardmäßig öffentlich, daher müssen diese Zugriffsmodifizierer beim Deklarieren nicht angegeben werden.

Abstrakte Methoden werden deklariert, indem die geschweiften Klammern des Methodenrumpfs weggelassen werden. Siehe Zeile 7 im obigen Code. Statische Methoden werden deklariert, indem der Methodenname mit dem Schlüsselwort fortgeführt wird statisch & Standardmethoden werden mit dem. deklariert Ursprünglich Modifikator.

Jetzt wäre ein guter Zeitpunkt zu erwähnen, dass Sie in einer Schnittstelle deklarierte Methoden in allen Klassen verwenden müssen, die sie implementieren. Andernfalls wird der Compiler "den Vertrag erzwingen", indem er einen Kompilierungsfehler ausgibt.

Diese besondere Eigenschaft von Schnittstellen kann einige Nachteile haben. Stellen Sie sich einen Fall vor, in dem ein API-Anbieter (Application Programming Interface) beschließt, seinen Schnittstellen weitere Methoden hinzuzufügen, aber mehrere Apps auf den alten Schnittstellen basieren. Entwickler, die die alten Schnittstellen in ihren Programmen verwenden, müssten ihren Code neu schreiben, was nicht praktikabel ist.

Also, das ist wo Ursprünglich Methoden kommen. Sie ermöglichen API-Anbietern, ihren Schnittstellen weitere Methoden hinzuzufügen und gleichzeitig die Binärkompatibilität mit älteren Schnittstellenversionen sicherzustellen.

default int getDirection ( String-Koordinaten){
// Code schreiben, um eine Standardimplementierung zu geben
}

Die obige Methode zeigt, wie eine Standardmethode aufgerufen wird getDirection wird deklariert. Beachten Sie, dass Sie beim Schreiben eine Implementierung einer Standardmethode einschließen müssen.

Verwenden von Schnittstellen

Nachdem wir nun Schnittstellen in Java definiert haben, können wir uns der Implementierung zuwenden. Dies erfährst du im folgenden Abschnitt.

Implementieren von Schnittstellen

Um eine Schnittstelle zu implementieren, verwenden Sie das Schlüsselwort implementiert mit dieser Syntax:

Klasse A implementiert Schnittstelle P{
}

Denken Sie daran, dass Sie alle Schnittstellenmethoden in der Klasse verwenden müssen. Sie können diese Regel nur ignorieren, wenn eine der Methoden definiert ist als Ursprünglich in der Schnittstelle.

Verwandt: Eine Einführung in die Verwendung von verknüpften Listen in Java

Wenn Ihre Klasse mehrere Schnittstellen implementieren soll, können Sie diese durch Kommas in Ihrer Header-Deklaration trennen.

Beispiel:

Klasse A implementiert die Schnittstelle P, Q, R{
}

Wenn die Klasse, die die Schnittstelle implementiert, eine Unterklasse ist, verwenden Sie die folgende Syntax:

Klasse A erweitert B implementiert C, D{
}

Schnittstellen ermöglichen Mehrfachvererbungen in Java. Normalerweise kann eine Klasse nur eine Klasse erweitern (einfache Vererbung). Schnittstellen sind die einzige Möglichkeit, mit der Java Mehrfachvererbungen durchführen kann.

Schnittstellen können auch andere Schnittstellen erweitern, so wie eine Klasse eine andere Klasse erweitern kann. Die untergeordnete Schnittstelle erbt die Methoden der Schnittstelle, die sie erweitert.

Siehe das Beispiel unten:

Schnittstelle A erweitert B{ 
}

Neben der Verwendung von Standardmethoden zum Ändern einer Schnittstelle, ohne dass die Entwickler ihre aktuellen Programme ändern müssen, können Sie auch die vorhandenen Schnittstellen erweitern.

Jetzt haben Sie einige Grundkenntnisse über Java-Schnittstellen

Schnittstellen in Java demonstrieren Abstraktion, eine der vier Säulen der objektorientierten Programmierung. Polymorphismus ist eine dieser vier Säulen. Es bezieht sich auf die Fähigkeit einer Methode, viele Formen anzunehmen.

Sie können Polymorphismus in Java durch Methodenüberladung oder Methodenüberschreibung implementieren. Als nächstes sollte auf Ihrer Java-Leseliste stehen, wie Sie diese Funktionen implementieren.

TeilenTweetEmail
Polymorphismus in Java: Methoden überladen oder überschreiben

Reduzieren Sie den Code, den Sie schreiben, indem Sie Methoden überladen und überschreiben.

Weiter lesen

Verwandte Themen
  • Programmierung
  • Java
  • Programmiersprachen
  • Programmierung
Über den Autor
Jerome Davidson (25 Artikel veröffentlicht)

Jerome ist Staff Writer bei MakeUseOf. Er behandelt Artikel über Programmierung und Linux. Er ist auch ein Krypto-Enthusiast und behält die Krypto-Industrie immer im Auge.

Mehr von Jerome Davidson

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren