Qual é o objetivo da palavra-chave padrão em Java?
Uma interface em Java é semelhante a uma classe, mas o corpo de uma interface pode incluirapenas métodos abstratos efinal
campos (constantes).
Recentemente, vi uma pergunta que se parece com isso
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
De acordo com a definição da interface,apenas métodos abstratos são autorizadas. Por que ele permite que eu compile o código acima? O que édefault
palavra-chave?
Por outro lado, quando eu estava tentando escrever o código abaixo, ele dizmodifier default not allowed here
default class MyClass{
}
ao invés de
class MyClass {
}
Alguém pode me dizer o objetivo dodefault
palavra-chave? É permitido apenas dentro de uma interface? Como isso diferedefault
(sem modificador de acesso)?