44 votes

Visibilité des méthodes dans une interface

Est-ce que toutes les méthodes dans une Interface ont par défaut le mode de visibilité Public?

76voto

Jeff Foster Points 22175

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.

16voto

pgras Points 7202

Toutes les méthodes d'interface SONT public abstract, tous les champs d'interface sont public static final...

voir ici.

12voto

rodion Points 6275

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.

4voto

JB Nizet Points 250258

Oui, toutes les méthodes d'une interface sont publiques et ne peuvent pas avoir d'autre modificateur d'accès (c'est-à-dire que le modificateur d'accès public par défaut est le seul modificateur d'accès valide)

3voto

Kojotak Points 1342

Oui, toutes les méthodes dans une interface sont implicitement publiques et abstraites.

Vérifiez specification du langage Java chapitre 9.4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X