Uma interface em Java é semelhante a uma classe, mas o corpo de uma interface pode incluir apenas métodos abstratos e
final
campos (constantes).
Recentemente, vi uma pergunta parecida com esta
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
De acordo com a definição da interface, apenas métodos abstratos são permitidos. Por que me permite compilar o código acima? Qual é a default
palavra - chave?
Por outro lado, quando eu estava tentando escrever o código abaixo, ele dizia modifier default not allowed here
default class MyClass{
}
ao invés de
class MyClass {
}
Alguém pode me dizer o propósito da default
palavra - chave? É permitido apenas dentro de uma interface? Como ele difere de default
(sem modificador de acesso)?