Какова цель ключевого слова по умолчанию в Java?

Интерфейс в Java похож на класс, но тело интерфейса может включатьтолько абстрактные методы а такжеfinal поля (константы).

Недавно я увидел вопрос, который выглядит так

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

Согласно определению интерфейса,только абстрактные методы разрешены. Почему это позволяет мне скомпилировать приведенный выше код? Чтоdefault ключевое слово?

С другой стороны, когда я пытался написать код ниже, то он говоритmodifier default not allowed here

default class MyClass{

}

вместо

class MyClass {

}

Может ли кто-нибудь сказать мне цельdefault ключевое слово? Разрешено ли это только внутри интерфейса? Чем он отличается отdefault (без модификатора доступа)?

Ответы на вопрос(7)

Ваш ответ на вопрос