¿Deben declararse los métodos en una interfaz Java con o sin un modificador de acceso público?

Resuelto Benno Richters asked hace 16 años • 12 respuestas

¿Deben declararse los métodos en una interfaz Java con o sin el publicmodificador de acceso?

Técnicamente no importa, por supuesto. Un método de clase que implementa an interfacees siempre public. Pero ¿cuál es una mejor convención?

El propio Java no es consistente en esto. Véase , por ejemplo , Collectionvs. Comparableo Futurevs.ScriptEngine

Benno Richters avatar Oct 02 '08 17:10 Benno Richters
Aceptado

La JLS deja esto claro:

Está permitido, pero no se recomienda por cuestión de estilo, especificar de forma redundante el modificador publicy/o abstractpara un método declarado en una interfaz.

Jon Skeet avatar Oct 02 '2008 11:10 Jon Skeet

El modificador público debería omitirse en las interfaces Java (en mi opinión).

Dado que no agrega ninguna información adicional, simplemente desvía la atención de las cosas importantes.

La mayoría de las guías de estilo recomendarán que lo omitas, pero, por supuesto, lo más importante es ser coherente en todo tu código base, y especialmente en cada interfaz. El siguiente ejemplo podría confundir fácilmente a alguien que no domina Java al 100%:

public interface Foo{
  public void MakeFoo();
  void PerformBar();
}
Rasmus Faber avatar Oct 02 '2008 10:10 Rasmus Faber