Schnittstelle in Java mit Beispiel

Was ist eine Schnittstelle in Java?

An Schnittstelle in Java Programmiersprache ist als abstrakter Typ definiert, der zur Angabe des Verhaltens einer Klasse verwendet 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 einer Schnittstelle

Um eine Schnittstelle in Ihrer Klasse zu verwenden, hängen Sie das Schlüsselwort „implements“ an Ihren Klassennamen an, gefolgt vom Namen der Schnittstelle.

interface {
//methods
}

Beispiel für die Implementierung einer Schnittstelle

Lassen Sie uns nun die Schnittstelle in Java anhand eines Beispiels verstehen:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Klicken Sie auf Kostenlos erhalten und dann auf Installieren. wenn sie hier klicken wenn das Video nicht zugänglich ist

Warum ist eine Schnittstelle erforderlich?

Um die Verwendung der Schnittstelle in Java besser zu verstehen, sehen wir uns ein Beispiel für eine Java-Schnittstelle an. Die Klasse „Media Player“ hat zwei Unterklassen: CD-Player und DVD-Player. Jedes verfügt über eine einzigartige Schnittstellenimplementierung in der Java-Methode zum Abspielen von Musik.

Warum ist eine Schnittstelle erforderlich?

Eine andere Klasse „Combo-Laufwerk“ erbt sowohl CD als auch DVD (siehe Abbildung unten). Welche Spielmethode soll es erben? Dies kann zu schwerwiegenden Designproblemen führen. Und daher erlaubt Java nicht mehrere Erbschaft.

Warum ist eine Schnittstelle erforderlich?

Nehmen wir nun ein weiteres Beispiel von Dog.

Angenommen, Sie haben eine Anforderung, bei der die Klasse „Hund“ die Klassen „Tier“ und „Haustier“ erbt (siehe Abbildung unten). Sie können jedoch in Java nicht zwei Klassen erweitern. Was würden Sie also tun? Die Lösung heißt Schnittstelle.

Warum ist eine Schnittstelle erforderlich?

Das Regelwerk für die Schnittstelle besagt:

  • Eine Java-Implementierungsschnittstelle ist eine zu 100 % abstrakte Klasse und hat nur abstrakte Methoden.
  • Die Klasse kann eine beliebige Anzahl von Schnittstellen implementieren.

Die Klasse Dog kann auf die Klasse „Animal“ erweitert werden und die Schnittstelle als „Pet“ implementieren.

Warum ist eine Schnittstelle erforderlich?

Beispiel für eine Java-Schnittstelle:

Lassen Sie uns das folgende Schnittstellenprogramm in Java verstehen:

Schritt 1) Folg kopierenwing Code in einen Editor einfügen.

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

Schritt 2) Speichern, kompilieren und führen Sie den Code aus. Beobachten Sie die Ausgabe der Schnittstelle in Java-Programm.

Unterschied zwischen Klasse und Schnittstelle

Klasse
Schnittstelle
Im Unterricht können Sie Variablen instanziieren und ein Objekt erstellen. In einer Schnittstelle können Sie keine Variable instanziieren und kein Objekt erstellen.
Die Klasse kann konkrete Methoden (mit Implementierung) enthalten Die Schnittstelle kann keine konkreten (mit Implementierung) Methoden enthalten
Die mit Klassen verwendeten Zugriffsspezifizierer sind privat, geschützt und öffentlich. In der Schnittstelle wird nur ein Spezifizierer verwendet: Public.

Wann werden Interface und Abstract Class verwendet?

  • 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 notwendig, dass die Klasse alle in den Schnittstellen deklarierten Methoden implementieren muss.
  • Die Klasse sollte alle in der Schnittstelle deklarierten abstrakten Methoden überschreiben
  • Die Schnittstelle ermöglicht das Senden einer Nachricht an ein Objekt, ohne Rücksicht darauf, zu welcher Klasse es gehört.
  • Die Klasse muss Funktionalität 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 von einer oder mehreren Schnittstellen ausgehen. Eine 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 innerhalb einer anderen Schnittstelle deklariert ist, wird als verschachtelte Schnittstelle bezeichnet
  • Zum Zeitpunkt der Deklaration muss die Schnittstellenvariable initialisiert werden. Anderewise, gibt der Compiler einen Fehler aus.
  • Die Klasse kann nicht zwei Schnittstellen in Java implementieren, die Methoden mit demselben Namen, aber unterschiedlichem Rückgabetyp haben.

Zusammenfassung:

  • Die Klasse, die die Schnittstelle implementiert, muss Funktionalität 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 von einer oder mehreren Schnittstellen ausgehen. Eine Klasse kann nur eine Klasse erweitern, aber beliebig viele Schnittstellen implementieren