Eine Schnittstelle in Java ist eine Klasse ähnlich, aber der Körper einer Schnittstelle kann nur abstrakte Methoden und
final
Felder (Konstanten) umfassen.Was ist der Zweck des Standardschlüsselworts in Java?
Vor kurzem sah ich eine Frage, die wie diese
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Gemäß der Schnittstellen-Definition sieht, nur abstrakte Methoden sind erlaubt. Warum kann ich den obigen Code kompilieren? Wie lautet das Schlüsselwort default
?
Auf der anderen Seite, wenn ich unten Code zu schreiben versuche, dann sagt es modifier default not allowed here
default class MyClass{
}
statt
class MyClass {
}
Kann mir jemand sagen, den Zweck des default
Schlüsselwort? Ist es nur innerhalb einer Schnittstelle erlaubt? Wie unterscheidet es sich von default
(kein Zugriffsmodifikator)?
Standardmethoden in Schnittstellen wurden in Java 8 hinzugefügt. Es ist kein Zugriffsmodifikator, es ist eine Standardimplementierung. – Eran
@Eran denken Sie nicht, Einführung der Standardmethode verletzt Schnittstellendefinition? : s – Ravi
Es hat die Schnittstellendefinition geändert. Diese Definition ist jetzt veraltet. –