Heim  >  Artikel  >  Java  >  Unterschiede in der Schnittstellensyntax zwischen Java-Versionen sowie Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen

Unterschiede in der Schnittstellensyntax zwischen Java-Versionen sowie Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen

PHPz
PHPznach vorne
2023-05-06 14:52:131097Durchsuche

Was ist eine Schnittstelle?

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.

Unterschiede in der Schnittstellensyntax zwischen Java-Versionen sowie Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen

Schnittstellensyntax: ( JDK7. 0)

(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 implementieren

 (einschließlich Methoden in die übergeordnete Schnittstelle der implementierten Schnittstelle)

Eine Klasse kann mehrere Schnittstellen implementieren und gleichzeitig eine Klasse erben


(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 :

a. Name der öffentlichen Standardrückgabewertart (formale Parameterliste) {

                                                                                               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 öffentlich
d. Die Standardmethode darf überschrieben werden, aber der Zugriffsmodifikator, wenn er überschrieben wird ist öffentlich                                                            


(1) Ab 9.0 können Methoden in der Schnittstelle durch private

( 2) Syntax:


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.

Klassifizierung von Schnittstellen

Konstante Schnittstelle:

Die Schnittstelle enthält nur Attribute und keine Methoden , und es gibt nur wenige Anwendungen

Leere Schnittstelle:

Wird allgemein als markierte Schnittstelle bezeichnet, es gibt keine Attribute und Abstraktionen in der Schnittstelle;
Zum Beispiel: IO-Objektserialisierung wird angewendet

Funktionale Schnittstelle:

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~)

Unterschiede in der Schnittstellensyntax zwischen Java-Versionen sowie Ähnlichkeiten und Unterschiede zwischen abstrakten Klassen und Schnittstellen

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen