Was ist der Zweck des Standardschlüsselworts in Java?

Eine Schnittstelle in Java ähnelt einer Klasse, der Hauptteil einer Schnittstelle kann jedoch @ enthaltenur abstrakte Methoden undfinal Felder (Konstanten).

Neuerdings habe ich eine Frage gesehen, die so aussieht

interface AnInterface {
    public default void myMethod() {
        System.out.println("D");
    }
}

Entsprechend der Schnittstellendefinition,nur abstrakte Methoden sind erlaubt. Warum kann ich den obigen Code kompilieren? Was ist derdefault Stichwort

uf der anderen Seite, wenn ich versuchte, unter Code zu schreiben, dann heißt esmodifier default not allowed here

default class MyClass{

}

Anstatt vo

class MyClass {

}

Kann mir jemand den Zweck desdefault Stichwort? Darf es nur innerhalb einer Schnittstelle sein? Wie unterscheidet es sich vondefault (kein Zugriffsmodifikator)?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage