Est-ce que toutes les méthodes dans une Interface ont par défaut le mode de visibilité Public?
Réponses
Trop de publicités?Toutes les méthodes dans une interface sont par défaut public
.
Voir la spécification du langage Java 6.6.1 qui déclare
Tous les membres des interfaces sont implicitement
public
.
Juste pour ajouter aux autres réponses ici : toutes les méthodes sont publiques, cependant, si l'interface elle-même est locale au package alors effectivement toutes les méthodes sont aussi locales au package.
Vous pouvez donc mélanger des méthodes publiques et locales au package, en faisant en sorte qu'une interface locale au package étende une interface publique.
public interface P{
void iAmPublic();
}
interface L extends P{
void iAmPackageLocal();
}
Ici, L
a effectivement une méthode publique et une méthode locale au package. Les clients extérieurs au package ne verront que iAmPublic()
, tandis que ceux de l'intérieur du package verront les deux méthodes.
De la même manière, vous pouvez imbriquer des interfaces à l'intérieur d'autres classes pour obtenir une visibilité des méthodes encore plus restreinte.
Oui, toutes les méthodes dans une interface sont implicitement publiques et abstraites.
Vérifiez specification du langage Java chapitre 9.4