Несмотря на то, что этот вопрос задавался давно, я чувствую, что исчерпывающее описание проясняет, почему нет необходимости использовать общедоступные абстрактные перед методами и общедоступные статические финальные перед константами интерфейса.
Прежде всего, интерфейсы используются для определения общих методов для набора несвязанных классов, для которых каждый класс будет иметь уникальную реализацию. Следовательно, невозможно указать модификатор доступа как частный, поскольку он не может быть доступен другим классам для переопределения.
Во-вторых, хотя можно инициировать объекты типа интерфейса, но интерфейс реализуется классами, которые его реализуют, а не наследуются. И поскольку интерфейс может быть реализован (реализован) разными несвязанными классами, которые не находятся в одном пакете, модификатор защищенного доступа также недействителен. Так что для модификатора доступа у нас остается только общественный выбор.
В-третьих, интерфейс не имеет реализации данных, включая переменные и методы экземпляра. Если есть логическая причина для вставки реализованных методов или переменных экземпляра в интерфейс, тогда это должен быть суперкласс в иерархии наследования, а не интерфейс. Учитывая этот факт, поскольку ни один метод не может быть реализован в интерфейсе, все методы в интерфейсе должны быть абстрактными.
В-четвертых, интерфейс может включать только константу в качестве членов данных, что означает, что они должны быть окончательными, и, конечно же, конечные константы объявляются как статические, чтобы сохранить только один их экземпляр. Следовательно, static final также необходим для констант интерфейса.
Итак, в заключение, хотя использование общедоступных абстрактных перед методами и общедоступного статического финала перед константами интерфейса является допустимым, но поскольку других параметров нет, он считается избыточным и не используется.
person
Leo The Four
schedule
06.03.2016
public
в этом контексте плохо, методы интерфейса по умолчанию могут теперь (с java 9) быть частными. Предлагаю вам удалить свой комментарий, так как он устарел. - person aioobe   schedule 02.08.2016public
. - person MC Emperor   schedule 27.07.2017