1. Schnittstelle: Eine "Spezialklasse", die zusammenfassende Klassen abstrahiert und nur abstrakte Methoden in der Schnittstelle enthalten kann. Die Schnittstelle kümmert sich nicht um die internen Zustandsdaten der Klasse und definiert die Spezifikationen, die eine Stapel von Klassen entspricht. (Es wird nur festgelegt, dass in dieser Klassenstruktur bestimmte Methoden bereitgestellt werden müssen, und die Bereitstellung dieser Methoden kann die tatsächlichen Anforderungen erfüllen.)
In der Java -Programmiersprache ist es ein abstrakter Typ, eine Sammlung abstrakter Methoden, und Schnittstellen werden normalerweise als Schnittstelle deklariert. Eine Klasse erbt die abstrakten Methoden der Schnittstelle durch Erben der Schnittstelle.
Schnittstellen sind keine Klassen, und die Art und Weise, wie sie Schnittstellen schreiben, ist den Klassen sehr ähnlich, aber sie gehören zu verschiedenen Konzepten. Die Klasse beschreibt die Eigenschaften und Methoden eines Objekts. Die Schnittstelle enthält die von der Klasse implementierten Methoden.
Wenn die Klasse, die eine Schnittstelle implementiert, eine abstrakte Klasse ist, definiert die Klasse alle Methoden in der Schnittstelle.
Die Schnittstelle kann nicht instanziiert werden, kann aber implementiert werden. Eine Klasse, die eine Schnittstelle implementiert, muss alle in der Schnittstelle beschriebenen Methoden implementieren. Andernfalls muss sie als abstrakte Klasse deklariert werden. Zusätzlich können in Java Schnittstellentypen verwendet werden, um eine Variable zu deklarieren, ein Nullzeiger oder an ein mit dieser Schnittstelle implementiertes Objekt gebunden sein.
Definition: [Modifikier] Schnittstellenschnittstellen Name erweitert die übergeordnete Schnittstelle 1, Zuordnungsschnittstelle 2, ... // nein erweitert übergeordnete Schnittstelle 1 ... soll die Schnittstelle definieren
{
// Null zu mehreren konstanten Definitionen ...
// Null zu mehreren abstrakten Instanzmethoden Definition ...
}
[Syntax Beschreibung]: 1. Der Modifikator kann öffentlich oder weggelassen werden. Wenn der Public Access Control -Charakter weggelassen wird, ist es die Erlaubnis zur Verpackung Zugriff.
2. Alle Mitglieder in der Schnittstelle sind öffentlich geändert, da die Schnittstelle öffentlich ist und von allen Klassen zugegriffen werden kann. Die Standardänderung des Attributs in der Schnittstelle lautet: öffentlich. Unabhängig davon, ob das Attribut geschrieben ist oder nicht, lautet die Standardänderung derselben Methode: Publicabstract, interne Klasse: PublicStatic. Sie werden standardmäßig hinzugefügt.
3.. Es können keine Konstruktoren in Mitgliedern sein, und es können keine Initialisierungsblöcke geben.
4. Eine Java -Quelldatei kann nur höchstens eine Schnittstelle definieren, da sie öffentlich geändert wird und der gespeicherte Name mit dem Namen der öffentlich geänderten Klasse übereinstimmt, und die Schnittstelle kann als spezielle Klasse angesehen werden.
2. Interface -Vererbung: Eine Schnittstelle kann mehrere direkte übergeordnete Schnittstellen haben, und eine Schnittstelle kann nur Schnittstellen erben, jedoch nicht der Klassen.
[Anmerkung]: a. Die untergeordnete Schnittstelle erbt die übergeordnete Schnittstelle und erhält alle abstrakten Methoden, konstanten Attribute, internen Klassen und anderen Definitionen, die in der übergeordneten Schnittstelle definiert sind.
3. Schnittstellenverwendung: Syntax: [Modifikator] Klassenname erweitert die übergeordnete Klasse implementiert Schnittstelle 1, Schnittstelle 2 ... {Klasse Body}.
【Vorsichtsmaßnahmen】
A. Beschreibung: Eine Klasse kann gleichzeitig eine übergeordnete Klasse und mehrere Schnittstellen erben, müssen jedoch nach Geräten platziert werden.
B. Die Schnittstelle kann keine Instanz erstellen, aber sie kann Variablen deklarieren, muss sich jedoch auf das Objekt seiner Implementierungsklasse beziehen.
C. Der Hauptzweck ist nach Klassen implementiert.
D. Implementierungsmethode: Verwenden Sie das Keyword implements
e. Nachdem eine Klasse eine Schnittstelle erbt, muss sie alle in diesen Schnittstellen definierten abstrakten Methoden vollständig implementieren (dh diese Klassenmethoden in der Unterklasse umschreiben). Andernfalls kann diese Klasse nur als abstrakte Klasse definiert werden, wenn es nicht vollständig implementiert ist.
F. Bei Überschreibung der Schnittstellenmethode kann der Modifikator nur größer oder gleich sein als die übergeordnete Klasse, sodass er auch ein öffentlicher Modifikator sein muss.
G. Alle Schnittstellentypvariablen können direkt den Objekttypvariablen zugeordnet werden.
Veröffentlichen Sie den Beispielcode (zitiert an Li Gangs verrückte Java):
// Definieren Sie eine Schnittstellenausgabe -Schnittstellenausgabe {// Das Attribut kann nur als Konstanten definiert werden int max_cache_line = 50; // void getData (String msg); } // Ein Schnittstellenprodukt -Schnittstellenprodukt definieren {int getProDuCetime (int a); } // Die Druckerklasse implementiert die definierte Schnittstelle öffentliche Klassendrucker implementiert Ausgabe, Produkt {private String [] printData = new String [max_cache_line]; private int datanum = 0; public void out () // Schreiben Sie die Ausgangsmethode der übergeordneten Schnittstelle um (datanum> 0) {System.out.println ("Print"+printData [0]); System.ArrayCopy (printData, 1, printData, 0,-datanum); }} public void getData (String msg) // Schreiben Sie die Ausgabemethode der übergeordneten Schnittstelle um. } else {printData [datanum ++] = msg; }} public int get producetime (int a) // Die Methode des übergeordneten Schnittstellenprodukts umschreiben {return a = a; } public static void main (String [] args) {// Die übergeordnete Schnittstelle kann Variablen deklarieren, aber keine Instanzen erstellen, Polymorphismus: Die Ausgangsdeklaration, aber die erstellte Instanz ist Druckerausgabe o = neuer Drucker (); O.GetData ("xiuxiu"); O.OUT (); // Rufen Sie die Ausgabemethode direkt auf // Die übergeordnete Schnittstelle kann Variablen deklarieren, aber keine Instanzen erstellen, Polymorphismus: Die Ausgangsdeklaration, aber die erstellte Instanz ist Druckerprodukt p = neuer Drucker (); System.out.println (P.GetProducetime (82)); // Alle Schnittstellentyp -Referenzvariablen können direkt dem Objekttyp Variablenobjekt OBJ = P zugeordnet werden; Objekt obj1 = o; }}4. Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen:
Dasselbe:
1. Alle sind abstrakte Methoden.
2. Es kann keine Instanz erstellt werden.
3. Die Unterklassen müssen alle abstrakten Methoden in ihnen implementieren, nachdem sie sie erbelt haben. Wenn sie nicht vollständig implementiert sind, kann die Klasse nur als abstrakte Klasse definiert werden.
Anders:
1. In der Schnittstelle können nur abstrakte Methoden und gewöhnliche Methoden in der abstrakten Klasse vorhanden sein.
2. Die Attribute in der Schnittstellenklasse haben standardmäßig den Modifikator PublicstaticFinal, aber die Attribute in der abstrakten Klasse können gewöhnlich sein.
3. Die Schnittstelle hat keinen Initialisierungsblock, wird jedoch in der abstrakten Klasse gefunden.
4. Eine Schnittstelle kann mehrere übergeordnete Schnittstellen haben, aber eine abstrakte Klasse kann nur eine übergeordnete Klasse haben.
Zusammenfassen
Im obigen dreht sich alles um die Schnittstellen- und Verwendungsbeispiele in Java. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen.