Heim >Java >javaLernprogramm >Was können die Modifikatoren der Java-Schnittstelle sein?

Was können die Modifikatoren der Java-Schnittstelle sein?

青灯夜游
青灯夜游Original
2020-10-21 16:21:4512014Durchsuche

Der Modifikator der Java-Schnittstelle kann „public abstract“ sein. Die Schnittstelle wird verwendet, um alle vom System bereitgestellten Dienste zu beschreiben. Daher müssen die Mitgliedskonstanten und -methoden in der Schnittstelle vom öffentlichen Typ sein. Die Schnittstelle beschreibt nur, was das System tun kann, gibt jedoch nicht an, wie dies zu tun ist Methoden in der Schnittstelle sind abstrakte Methoden.

Was können die Modifikatoren der Java-Schnittstelle sein?

Der Modifikator der Java-Schnittstelle ist standardmäßig auf öffentliche Zusammenfassung eingestellt, da die Schnittstelle implementiert werden muss.

Schnittstellen sind sehr wichtig, hier ein wenig ausführlich:

(1) Die Schnittstelle wird verwendet, um alle vom System für die Außenwelt bereitgestellten Dienste zu beschreiben Die Schnittstelle muss öffentlich sein.

(2) Die Schnittstelle beschreibt nur, was das System tun kann, gibt jedoch nicht an, wie es zu tun ist. Daher sind die Methoden in der Schnittstelle abstrakt (3) Die Schnittstelle beinhaltet keine Details zu bestimmten Instanzen, daher hat die Schnittstelle keinen Konstruktor, kann nicht instanziiert werden, hat keine Instanzvariablen, sondern nur statische Variablen

(4) Die Variablen in der Schnittstelle sind allen Implementierungen gemeinsam Da es sich um gemeinsame Klassen handelt, müssen sie Dinge sein, die sich nicht ändern, denn Dinge, die sich ändern, können nicht als geteilt gezählt werden. Daher ist die Variable ein unveränderlicher (endgültiger) Typ, der eine Konstante ist.

(5) Variablen können nicht in Schnittstellen definiert werden? Wenn die Schnittstelle Variablen definieren kann, die Methoden in der Schnittstelle jedoch abstrakt sind, können die Eigenschaften nicht durch das Verhalten in der Schnittstelle geändert werden. Einige Leute werden sagen, es spielt keine Rolle, Sie können die Eigenschaften in der Schnittstelle durch das Verhalten des Objekts ändern, das die Schnittstelle implementiert. Das ist natürlich kein Problem, aber bedenken Sie diese Situation. Wenn es eine statische Variable a mit öffentlichem Zugriff in Schnittstelle A gibt. Gemäß der Semantik von Java können wir auf die Variable a zugreifen, ohne das Objekt zu verwenden, das die Schnittstelle implementiert. Wir können den Wert der Variablen a in der Schnittstelle über A.a = xxx; ändern. So wie dies in einer abstrakten Klasse möglich ist, haben alle Objekte, die die Schnittstelle A implementieren, automatisch den geänderten Wert von a. Das heißt, wenn a an einer Stelle geändert wird, folgt auch der Wert von a in allen diesen Objekten . geändert. Was ist der Unterschied zwischen dieser und einer abstrakten Klasse? Wie spiegelt sich das von der Schnittstelle bereitgestellte einheitliche Protokoll wider? Daher können Variablen nicht in der Schnittstelle angezeigt werden. Wenn Variablen vorhanden sind, steht dies im Widerspruch zur Idee einer einheitlichen Abstraktion, die von der Schnittstelle bereitgestellt wird. Daher müssen die Attribute in der Schnittstelle Konstanten sein, die nur gelesen und nicht geändert werden können. Nur so kann ein einheitliches Attribut für das Objekt bereitgestellt werden, das die Schnittstelle implementiert.

Laienhaft ausgedrückt: Wenn Sie der Meinung sind, dass etwas geändert werden muss, fügen Sie es in Ihre eigene Implementierung ein und nicht in eine Schnittstelle. Eine Schnittstelle ist lediglich eine Abstraktion der Attribute und Verhaltensweisen einer Art von Ding auf höherer Ebene. Die Schnittstelle ist für Änderungen geschlossen und für Erweiterungen (verschiedene Implementierungen) offen. Sie ist Ausdruck des Offen-Geschlossen-Prinzips.

Also:

**Die Methoden der Schnittstelle sind standardmäßig öffentlich;

Variablen können in der Schnittstelle nicht definiert werden, es können nur Konstanten definiert werden (mit der endgültigen Änderung werden sie zu Konstanten). Daher sind die Eigenschaften der Schnittstelle standardmäßig öffentliche statische Endkonstanten und müssen einen Anfangswert zugewiesen bekommen. **

Das obige ist der detaillierte Inhalt vonWas können die Modifikatoren der Java-Schnittstelle sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn