Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java - Schnittstellen

Eine Schnittstelle ist ein Referenztyp in Java. Es ist ähnlich wie im Unterricht. Es ist eine Sammlung abstrakter Methoden. Eine Klasse implementiert eine Schnittstelle und erbt dabei die abstrakten Methoden der Schnittstelle.

Neben abstrakten Methoden kann eine Schnittstelle auch Konstanten, Standardmethoden, statische Methoden und verschachtelte Typen enthalten. Methodenkörper existieren nur für Standardmethoden und statische Methoden.

Das Schreiben einer Schnittstelle ähnelt dem Schreiben einer Klasse. Aber eine Klasse beschreibt die Attribute und das Verhalten eines Objekts. Und eine Schnittstelle enthält Verhaltensweisen, die eine Klasse implementiert.

Sofern die Klasse, die die Schnittstelle implementiert, nicht abstrakt ist, müssen alle Methoden der Schnittstelle in der Klasse definiert werden.

Eine Schnittstelle ähnelt einer Klasse auf folgende Weise −

Eine Schnittstelle unterscheidet sich jedoch in mehrfacher Hinsicht von einer Klasse, einschließlich −

Schnittstellen deklarieren

Die Schnittstelle Das Schlüsselwort wird verwendet, um eine Schnittstelle zu deklarieren. Hier ist ein einfaches Beispiel, um eine Schnittstelle zu deklarieren −

Beispiel

Es folgt ein Beispiel für eine Schnittstelle −

/* File name : NameOfInterface.java */
import java.lang.*;
// Any number of import statements

public interface NameOfInterface {
   // Any number of final, static fields
   // Any number of abstract method declarations\
}

Schnittstellen haben die folgenden Eigenschaften −

Beispiel

/* File name : Animal.java */
interface Animal {
   public void eat();
   public void travel();
}

Schnittstellen implementieren

Wenn eine Klasse eine Schnittstelle implementiert, können Sie sich vorstellen, dass die Klasse einen Vertrag unterzeichnet und zustimmt, die spezifischen Verhaltensweisen der Schnittstelle auszuführen. Wenn eine Klasse nicht alle Verhaltensweisen der Schnittstelle ausführt, muss die Klasse sich selbst als abstrakt deklarieren.

Eine Klasse verwendet die Implementierungen Schlüsselwort zum Implementieren einer Schnittstelle. Das Schlüsselwort implements erscheint in der Klassendeklaration nach dem erweiterten Teil der Deklaration.

Beispiel

/* File name : MammalInt.java */
public class MammalInt implements Animal {

   public void eat() {
      System.out.println("Mammal eats");
   }

   public void travel() {
      System.out.println("Mammal travels");
   } 

   public int noOfLegs() {
      return 0;
   }

   public static void main(String args[]) {
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

Dies wird das folgende Ergebnis erzeugen −

Ausgabe

Mammal eats
Mammal travels

Beim Überschreiben von Methoden, die in Schnittstellen definiert sind, müssen einige Regeln befolgt werden −

Bei Implementierungsschnittstellen gibt es mehrere Regeln −

Erweiternde Schnittstellen

Eine Schnittstelle kann eine andere Schnittstelle auf die gleiche Weise erweitern, wie eine Klasse eine andere Klasse erweitern kann. Die erweitert Das Schlüsselwort wird verwendet, um eine Schnittstelle zu erweitern, und die untergeordnete Schnittstelle erbt die Methoden der übergeordneten Schnittstelle.

Das folgende Sport-Interface wird um Hockey- und Fußball-Interfaces erweitert.

Beispiel

// Filename: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// Filename: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// Filename: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

Das Hockey-Interface hat vier Methoden, aber es erbt zwei von Sports; Daher muss eine Klasse, die Hockey implementiert, alle sechs Methoden implementieren. Ebenso muss eine Klasse, die Football implementiert, die drei Methoden von Football und die zwei Methoden von Sports definieren.

Mehrere Schnittstellen erweitern

Eine Java-Klasse kann nur eine Elternklasse erweitern. Mehrfachvererbung ist nicht erlaubt. Schnittstellen sind jedoch keine Klassen, und eine Schnittstelle kann mehr als eine übergeordnete Schnittstelle erweitern.

Das Schlüsselwort extend wird einmal verwendet, und die übergeordneten Schnittstellen werden in einer durch Kommas getrennten Liste deklariert.

Wenn die Eishockey-Schnittstelle beispielsweise sowohl Sport als auch Ereignis erweitert, würde sie als −

deklariert werden

Beispiel

public interface Hockey extends Sports, Event

Tagging-Schnittstellen

Die häufigste Verwendung zum Erweitern von Schnittstellen tritt auf, wenn die übergeordnete Schnittstelle keine Methoden enthält. Die MouseListener-Schnittstelle im java.awt.event-Paket hat beispielsweise java.util.EventListener erweitert, die als −

definiert ist

Beispiel

package java.util;
public interface EventListener
{}

Eine Schnittstelle ohne darin enthaltene Methoden wird als Tagging bezeichnet Schnittstelle. Es gibt zwei grundlegende Designzwecke für Tagging-Schnittstellen −

Erstellt ein gemeinsames übergeordnetes Element − Wie bei der EventListener-Schnittstelle, die durch Dutzende anderer Schnittstellen in der Java-API erweitert wird, können Sie eine Tagging-Schnittstelle verwenden, um ein gemeinsames übergeordnetes Element in einer Gruppe von Schnittstellen zu erstellen. Wenn beispielsweise eine Schnittstelle EventListener erweitert, weiß die JVM, dass diese bestimmte Schnittstelle in einem Ereignisdelegierungsszenario verwendet wird.

Fügt einer Klasse einen Datentyp hinzu − Aus dieser Situation stammt der Begriff Tagging. Eine Klasse, die eine Tagging-Schnittstelle implementiert, muss keine Methoden definieren (da die Schnittstelle keine hat), aber die Klasse wird durch Polymorphismus zu einem Schnittstellentyp.


Java

  1. Letztes Java-Schlüsselwort
  2. Java-Instanz des Operators
  3. Java-Schnittstelle
  4. Verschachtelte statische Java-Klasse
  5. Anonyme Java-Klasse
  6. Java-Singleton-Klasse
  7. Java-Reflexion
  8. Java ObjectOutputStream-Klasse
  9. Java-Generika
  10. Java-Dateiklasse