Ein Leitfaden für Anfänger zur Verwendung von Schnittstellen in Java

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 interface vor dem Schnittstellennamen.

 interface Car{
// constant declarations, if any
int tyres = 4;
// method signatures
int lights (int brightness);
int turn (int tyres, String direction){
// some code
}
}

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

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

Verwandte: So verwalten Sie den Variablenbereich in Java

Der Körper einer Schnittstelle kann auch standardmäßige, abstrakte, statische Methoden haben. Diese Methoden sind standardmäßig public , 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 static fortgeführt wird und Standardmethoden mit dem Standardmodifikator deklariert werden.

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.

Hier kommen also Standardmethoden ins Spiel. Sie ermöglichen es API-Anbietern, ihren Schnittstellen weitere Methoden hinzuzufügen und gleichzeitig die Binärkompatibilität mit älteren Schnittstellenversionen sicherzustellen.

 default int getDirection ( String coordinates){
// write some code to give a default implementation
}

Die obige Methode zeigt, wie eine Standardmethode namens getDirection deklariert wird. 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 implements mit dieser Syntax:

 class A implements interface 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 als Standard in der Schnittstelle definiert ist.

Verwandte: 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:

 class A implements interface P, Q, R{
}

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

 class A extends B implements C, D{
}

Schnittstellen ermöglichen Mehrfachvererbung 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:

 interface A extends 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.