Інтерфейс у 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
(без модифікатора доступу)?