Visibilité des méthodes dans l’interface

Toutes les méthodes d’une interface ont-elles par défaut le mode de visibilité publique?

Toutes les méthodes d’une interface sont public par défaut.

Voir Spécification du langage Java 6.6.1 qui indique

Tous les membres des interfaces sont implicitement public .

Toutes les méthodes d’interface sont public abstract , tous les champs d’interface sont public static final

voir ici

Juste pour append d’autres réponses ici: toutes les méthodes sont publiques, cependant, si l’interface elle-même est locale à un paquet, toutes les méthodes sont aussi locales à un paquet.

Vous pouvez donc combiner des méthodes publiques et des méthodes locales, en rendant une interface locale à un paquet public.

 public interface P{ void iAmPublic(); } interface L extends P{ void iAmPackageLocal(); } 

Ici, L possède une méthode publique et une méthode locale. Les clients extérieurs au package ne verront que iAmPublic() , tandis que ceux provenant du package verront les deux méthodes.

De la même manière, vous pouvez imbriquer des interfaces dans d’autres classes pour obtenir une visibilité de la méthode encore plus étroite.

Oui, toutes les méthodes d’une interface sont publiques et ne peuvent avoir aucun autre modificateur d’access (le modificateur d’access public par défaut est le seul modificateur d’access valide)

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

Vérifiez le chapitre 9.4 de la spécification du langage Java