Apropos Schnittstellen: USB ist definitiv jedem bekannt~
Schnittstelle ist ein Standard und eine Spezifikation.
Hinweis: Sobald die Schnittstelle formuliert ist, müssen sowohl Benutzer als auch Implementierer dem Standard folgen.
(1) Schlüsselwort: Schnittstelle
(2) Syntax: Schnittstelle Schnittstellenname{}
(3) Nachdem die Schnittstelle kompiliert wurde, wird die entsprechende .class-Datei generiert
(4) Die Schnittstelle kann keine Objekte erstellen, aber es kann deklariert werden Referenzschnittstellenname Referenzname;
(5) Es gibt keine Konstruktormethode in der Schnittstelle
(6) Alle Eigenschaften in der Schnittstelle sind öffentliche statische Konstanten
(Standard: öffentliches statisches Finale)
(7) Alle Methoden in Die Schnittstelle ist eine öffentliche abstrakte Methode
(standardmäßig geändert durch: öffentliche Zusammenfassung)
Hinweis: Die Standardzugriffsberechtigung der Methode in der Schnittstelle ist öffentlich
Die Standardzugriffsberechtigung der Methode in der Klasse ist die Standardimplementierungsklasse der Schnittstelle:
Syntax:
Klassenname implementiert Schnittstellennamen {}Hinweis: Das Schlüsselwort der Implementierung lautet implementiert(1) Wenn die Implementierungsklasse keine abstrakte Klasse werden möchte, muss sie (implementieren ) alle Methoden in der Schnittstelle
(2) Die Implementierungsklasse überschreibt die Methoden in der Schnittstelle. Bei Verwendung einer Methode muss die Zugriffsberechtigung öffentlich sein. Verwendung:
(1) In der Referenz des Schnittstellentyps dürfen nur Objekte der Die entsprechende Implementierungsklasse kann gespeichert werden und spiegelt polymorphe Anwendungen wider
Schnittstellenname Referenzname = neuer Implementierungsklassenname (aktueller Parameter);
Hinweis: Eine Schnittstelle kann mehrere Implementierungsklassen definieren Vererbung von Schnittstelle: (sehr wichtig~)
Die Beziehung zwischen Schnittstellen ist Mehrfachvererbung
( 1) Eine Schnittstelle kann mehrere übergeordnete Schnittstellen gleichzeitig erben
(2) Syntax:
Schnittstellenschnittstellenname erweitert übergeordneten Schnittstellennamen 1 , Name der übergeordneten Schnittstelle 2{}Die Beziehung zwischen Klassen und Schnittstellen ist eine Mehrfachimplementierung(1) Eine Klasse kann mehrere Schnittstellen gleichzeitig implementieren
(2) Syntax:
Klasse Klassenname implementiert Schnittstelle Name 1, Schnittstellenname 2 {}(3) Eine Klasse kann mehrere Schnittstellen gleichzeitig implementieren und möchte nicht. Um eine abstrakte Klasse zu werden, müssen Sie alle Methoden in allen Schnittstellen implementierenEine Klasse kann mehrere Schnittstellen implementieren und gleichzeitig eine Klasse erben(einschließlich Methoden in die übergeordnete Schnittstelle der implementierten Schnittstelle)
(1) Wenn eine Klasse erbt Eine übergeordnete Klasse, die mehrere Schnittstellen gleichzeitig implementiert, muss zuerst erben und dann implementieren
(2) Syntax:
Klasse Klassenname erweitert übergeordneten Klassennamen implementiert übergeordnete Schnittstelle 1, übergeordnete Schnittstelle 2 {}Hinweis: muss zuerst erweitert werden und implementiert dann Existiert zwischen Klassen: Einzelvererbung--- ------extends
Existiert zwischen Klassen und Schnittstellen: mehrere Implementierungen------implementiert
Existiert zwischen Schnittstellen: Mehrfachvererbung ------extends
Die Auswirkungen von Schnittstellen:
1 Durch eine Mehrfachvererbungsbeziehung zwischen Schnittstellen und eine Mehrfachimplementierungsbeziehung zwischen Klassen und Schnittstellen wird der Polymorphismus vielfältiger und komplexer
2. Wenn nur eine der beiden Parteien der erzwungenen Typkonvertierung ein Schnittstellentyp ist, muss die Kompilierung erfolgreich sein. Die Operation ist in die folgenden zwei Situationen unterteilt:a. Wenn der tatsächliche Objekttyp, der in der konvertierten Referenz gespeichert ist, einer der zu konvertierenden Typen ist, wird die Operation erfolgreich ausgeführt.
b Die zu konvertierende Kompilierung ist erfolgreich, aber beim Ausführen wird ein Fehler gemeldet, die Fehlermeldung: Java.lang.ClassCastException (Typkonvertierungsausnahme)
Schnittstellensyntax: (JDK8.0 )
(1) Standardmethode :
using using using using using ' durch ' s ' durch ' s durch use durch ' durch 's ' durch 's ' durch using ''s ' bis ‐ ‐ ‐‐‐‐ , diese Methode darf einen Methodenimplementierungsteil haben
c Die Standardmethode-Zugriffsberechtigung ist öffentlichd. Die Standardmethode darf überschrieben werden, aber der Zugriffsmodifikator, wenn er überschrieben wird ist öffentlich( 2) Syntax:
(1) Ab 9.0 können Methoden in der Schnittstelle durch private
privater Rückgabewerttyp-Methodenname (formale Parameterliste) { mit mit mit mit mit mit mit mit ‐ ‐ .
(3) Private Methoden dienen der internen Verwendung der Schnittstelle und extrahieren normalerweise die gemeinsamen Logikteile anderer Methoden, um die Coderedundanz zu reduzieren.
Die Schnittstelle enthält nur Attribute und keine Methoden , und es gibt nur wenige Anwendungen
Wird allgemein als markierte Schnittstelle bezeichnet, es gibt keine Attribute und Abstraktionen in der Schnittstelle;
Zum Beispiel: IO-Objektserialisierung wird angewendet
Es gibt und nur eine abstrakte Methode in der Schnittstelle (statisch und Standard sind nicht zu beachten), weit verbreitet in Lambda-Ausdrücken
Was ist der Unterschied zwischen abstrakten Klassen und Schnittstellen? (Denken Sie daran~)
Das obige ist der detaillierte Inhalt vonUnterschiede in der Schnittstellensyntax zwischen Java-Versionen sowie Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!