Должны ли методы в интерфейсе Java быть объявлены с модификатором открытого доступа или без него? - PullRequest
274 голосов
/ 02 октября 2008

Должны ли методы в интерфейсе Java быть объявлены с модификатором доступа public или без него?

Технически это не имеет значения, конечно. Метод класса, который реализует interface, всегда равен public. Но что является лучшим соглашением?

Сама Java не соответствует этому. См., Например, Collection против Comparable или Future против ScriptEngine.

Ответы [ 12 ]

1 голос
/ 02 октября 2008

Это абсолютно субъективно. Я опускаю избыточный модификатор public, так как он выглядит как беспорядок. Как уже упоминалось другими, последовательность является ключом к этому решению.

Интересно отметить, что разработчики языка C # решили применить это. Объявление метода интерфейса как общедоступного в C # на самом деле является ошибкой компиляции. Согласованность, вероятно, не важна для разных языков, поэтому, я думаю, это не имеет прямого отношения к Java.

0 голосов
/ 31 марта 2012

Люди узнают ваш интерфейс по завершению кода в их IDE или в Javadoc, а не по чтению исходного кода. Так что нет смысла помещать «public» в источник - никто не читает источник.

...