Quel est le but de mots clés par défaut en Java?

Une interface en Java est similaire à une classe, mais le corps d'un
l'interface peut inclure seulement des méthodes abstraites et final champs
(les 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, seulement des méthodes abstraites sont autorisés. Pourquoi a-t-il me permettre de compiler le code ci-dessus? Qu'est-ce que le default mot-clé?

D'autre part, quand j'ai essayé d'écrire de code ci-dessous, puis il dit modifier default not allowed here

default class MyClass{

}

au lieu de

class MyClass {

}

Quelqu'un peut me dire le but de la default mot-clé? Est-il permis qu'à l'intérieur d'une interface? Comment est-il différent de default (pas de modificateur d'accès)?

  • méthodes par défaut dans les interfaces ont été ajoutés dans Java 8. Ce n'est pas un modificateur d'accès, c'est un défaut de mise en œuvre.
  • ne pensez-vous pas, l'introduction de la méthode par défaut de violation de la définition de l'interface ? :s
  • Il a changé la définition de l'interface. Cette définition est maintenant obsolète.
  • Ils ont été mis en place pour appuyer les lambdas. Les détails de pourquoi ils sont nécessaires sont dans l'homme de paille proposition de Projet Lambda.
InformationsquelleAutor Ravi | 2015-07-23