Une interface en Java est similaire à une classe, mais le corps d'une interface ne peut inclure que des méthodes abstraites et des
final
champs (constantes).
Récemment, j'ai vu une question qui ressemble à ceci
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Selon la définition de l'interface, seules les méthodes abstraites sont autorisées. Pourquoi me permet-il de compiler le code ci-dessus? Quel est le default
mot clé?
D'un autre côté, quand j'essayais d'écrire le code ci-dessous, il dit modifier default not allowed here
default class MyClass{
}
au lieu de
class MyClass {
}
Quelqu'un peut-il me dire le but du default
mot-clé? Est-ce uniquement autorisé à l'intérieur d'une interface? En quoi diffère-t-il de default
(pas de modificateur d'accès)?