Bei der objektorientierten Programmierung ist es nützlich zu definieren, was eine Klasse tun soll, aber nicht wie.
Eine abstrakte Methode definiert die Signatur einer Methode, ohne eine Implementierung bereitzustellen, und die Unterklasse muss diese Methode implementieren.
Eine Java-Schnittstelle ermöglicht es Ihnen, die Definition dessen, was getan werden soll, vollständig von der Implementierung dessen, wie es zu tun ist, zu trennen.
Eine Schnittstelle kann Methoden ohne Körper angeben, die von Klassen implementiert werden müssen.
Es gibt keine Begrenzung für die Anzahl der Klassen, die eine Schnittstelle implementieren können, und eine Klasse kann mehrere Schnittstellen implementieren.
Um eine Schnittstelle zu implementieren, muss die Klasse die Implementierung der beschriebenen Methoden bereitstellen.
Verschiedene Klassen können dieselbe Schnittstelle auf unterschiedliche Weise implementieren, aber dieselben Methoden verwenden.
Die Verwendung von Schnittstellen ermöglicht Polymorphismus, da Objekte aus verschiedenen Klassen austauschbar behandelt werden können.
JDK 8 führte die Möglichkeit für Schnittstellen ein, Standardimplementierungen für Methoden zu definieren, sodass eine Schnittstelle das Verhalten spezifizieren kann.
Trotz Standardimplementierungen bleibt die ursprüngliche Absicht von Schnittstellen, nur das zu definieren, was weitgehend unverändert bleibt.
Der Schwerpunkt liegt zunächst auf traditionellen Schnittstellen, mit einer Diskussion der Standardmethoden am Ende des Kapitels.
Name der Zugriffsschnittstelle {
ret-type method-name1(param-list);
ret-type method-name2(param-list);
Geben Sie var1 = value;
ein
Geben Sie var2 = value;
ein
// ...
ret-type method-nameN(param-list);
Geben Sie varN = value;
ein
}
Der Zugriff auf eine Schnittstelle kann öffentlich oder Standardzugriff (paketprivat) sein.
Wenn keine Zugriffsmodifikatoren enthalten sind, ist die Schnittstelle nur für Mitglieder Ihres Pakets zugänglich.
Wenn die Schnittstelle als öffentlich deklariert ist, kann sie von jedem Code verwendet werden und muss sich in einer Datei mit demselben Namen befinden.
Der Schnittstellenname kann ein beliebiger gültiger Bezeichner sein.
In der traditionellen Form einer Schnittstelle werden Methoden nur mit ihrem Rückgabetyp und ihrer Signatur deklariert und sind im Wesentlichen abstrakte Methoden.
Klassen, die diese Schnittstelle implementieren, müssen Implementierungen für alle ihre Methoden bereitstellen, die implizit öffentlich sind.
Variablen in einer Schnittstelle sind keine Instanzvariablen; Sie sind implizit öffentlich, endgültig und statisch und müssen initialisiert werden (sie sind Konstanten).
Beispiel einer Schnittstellendefinition:
öffentliche Schnittstellenserie {
int getNext(); // gibt die nächste Zahl in der Reihe zurück
void reset(); // neu starten
void setStart(int x); // definiert den Anfangswert
}
Das obige ist der detaillierte Inhalt vonSchnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!