Was ist die Schnittstelle in Java?
Eine Schnittstelle in der Java- Programmierung ist als abstrakter Typ definiert, mit dem das Verhalten einer Klasse angegeben wird. Eine Java-Schnittstelle enthält statische Konstanten und abstrakte Methoden. Eine Klasse kann mehrere Schnittstellen implementieren. In Java werden Schnittstellen mit dem Schlüsselwort interface deklariert. Alle Methoden in der Schnittstelle sind implizit öffentlich und abstrakt.
Syntax zum Deklarieren der Schnittstelle
interface {//methods}
Um eine Schnittstelle in Ihrer Klasse zu verwenden, fügen Sie nach Ihrem Klassennamen das Schlüsselwort "implementiert" gefolgt vom Namen der Schnittstelle hinzu.
Beispiel für die Implementierung der Schnittstelle
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Klicken Sie hier, wenn das Video nicht zugänglich ist
Warum ist eine Schnittstelle erforderlich?
Um das Konzept der Java-Schnittstelle besser zu verstehen, sehen Sie sich ein Beispiel an. Die Klasse "Media Player" hat zwei Unterklassen: CD-Player und DVD-Player. Jedes hat seine eigene Implementierungsmethode zum Abspielen von Musik.
Eine andere Klasse "Combo-Laufwerk" erbt sowohl CD als auch DVD (siehe Abbildung unten). Welche Spielmethode sollte es erben? Dies kann schwerwiegende Designprobleme verursachen. Daher erlaubt Java keine Mehrfachvererbung.
Nehmen wir nun ein weiteres Beispiel für Hund.
Angenommen, Sie haben eine Anforderung, bei der die Klasse "Hund" die Klassen "Tier" und "Haustier" erbt (siehe Abbildung unten). Sie können jedoch nicht zwei Klassen in Java erweitern. Also, was würdest du tun? Die Lösung ist Schnittstelle.
Das Regelwerk für die Schnittstelle sagt:
- Eine Schnittstelle ist zu 100% eine abstrakte Klasse und verfügt nur über abstrakte Methoden.
- Die Klasse kann eine beliebige Anzahl von Schnittstellen implementieren.
Class Dog kann sich auf die Klasse "Animal" erstrecken und die Schnittstelle als "Pet" implementieren.
Beispiel für eine Java-Schnittstelle:
Schritt 1) Kopieren Sie den folgenden Code in einen Editor.
Schnittstelle Pet {öffentlicher Leertest ();}}Klasse Hund implementiert Haustier {öffentlicher Leertest () {System.out.println ("Implementierte Schnittstellenmethode");}}public static void main (String args []) {Haustier p = neuer Hund ();p.test ();}}}}
Schritt 2) Speichern, kompilieren und führen Sie den Code aus. Beobachten Sie die Ausgabe.
Unterschied zwischen Klasse und Schnittstelle
Klasse | Schnittstelle |
---|---|
In der Klasse können Sie Variablen instanziieren und ein Objekt erstellen. | In einer Schnittstelle können Sie keine Variablen instanziieren und kein Objekt erstellen. |
Die Klasse kann konkrete (mit Implementierung) Methoden enthalten | Die Schnittstelle darf keine konkreten (mit Implementierung) Methoden enthalten |
Die mit Klassen verwendeten Zugriffsspezifizierer sind privat, geschützt und öffentlich. |
In der Schnittstelle wird nur ein Bezeichner verwendet - Öffentlich. |
Wann sollte Interface und Abstract Class verwendet werden?
- Verwenden Sie eine abstrakte Klasse, wenn eine Vorlage für eine Gruppe von Unterklassen definiert werden muss
- Verwenden Sie eine Schnittstelle, wenn eine Rolle für andere Klassen definiert werden muss, unabhängig vom Vererbungsbaum dieser Klassen
Muss Fakten über Interface wissen
- Eine Java-Klasse kann mehrere Java-Schnittstellen implementieren. Es ist erforderlich, dass die Klasse alle in den Schnittstellen deklarierten Methoden implementiert.
- Die Klasse sollte alle in der Schnittstelle deklarierten abstrakten Methoden überschreiben
- Die Schnittstelle ermöglicht das Senden einer Nachricht an ein Objekt, ohne zu berücksichtigen, zu welchen Klassen es gehört.
- Die Klasse muss Funktionen für die in der Schnittstelle deklarierten Methoden bereitstellen.
- Alle Methoden in einer Schnittstelle sind implizit öffentlich und abstrakt
- Eine Schnittstelle kann nicht instanziiert werden
- Eine Schnittstellenreferenz kann auf Objekte ihrer implementierenden Klassen verweisen
- Eine Schnittstelle kann sich von einer oder mehreren Schnittstellen erstrecken. Die Klasse kann nur eine Klasse erweitern, aber eine beliebige Anzahl von Schnittstellen implementieren
- Eine Schnittstelle kann keine andere Schnittstelle implementieren. Bei Bedarf muss eine weitere Schnittstelle erweitert werden.
- Eine Schnittstelle, die in einer anderen Schnittstelle deklariert ist, wird als verschachtelte Schnittstelle bezeichnet
- Zum Zeitpunkt der Deklaration muss die Schnittstellenvariable initialisiert werden. Andernfalls gibt der Compiler einen Fehler aus.
- Die Klasse kann in Java nicht zwei Schnittstellen implementieren, die Methoden mit demselben Namen, aber unterschiedlichem Rückgabetyp haben.
Zusammenfassung :
- Die Klasse, die die Schnittstelle implementiert, muss Funktionen für die in der Schnittstelle deklarierten Methoden bereitstellen
- Alle Methoden in einer Schnittstelle sind implizit öffentlich und abstrakt
- Eine Schnittstelle kann nicht instanziiert werden
- Eine Schnittstellenreferenz kann auf Objekte ihrer implementierenden Klassen verweisen
- Eine Schnittstelle kann sich von einer oder mehreren Schnittstellen erstrecken. Eine Klasse kann nur eine Klasse erweitern, aber eine beliebige Anzahl von Schnittstellen implementieren