Какова цель ключевого слова по умолчанию в 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
(без модификатора доступа)?