¿Deben declararse los métodos en una interfaz Java con o sin un modificador de acceso público?
¿Deben declararse los métodos en una interfaz Java con o sin el public
modificador de acceso?
Técnicamente no importa, por supuesto. Un método de clase que implementa an interface
es siempre public
. Pero ¿cuál es una mejor convención?
El propio Java no es consistente en esto. Véase , por ejemplo , Collection
vs. Comparable
o Future
vs.ScriptEngine
La JLS deja esto claro:
Está permitido, pero no se recomienda por cuestión de estilo, especificar de forma redundante el modificador
public
y/oabstract
para un método declarado en una interfaz.
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();
}