Несмотря на то, что этот вопрос был задан давно, но я считаю, что подробное описание прояснит, почему нет необходимости использовать публичные рефераты перед методами и public static final перед константами интерфейса.
Прежде всего, интерфейсы используются для определения общих методов для набора несвязанных классов, для которых каждый класс будет иметь уникальную реализацию. Поэтому невозможно указать модификатор доступа как закрытый, поскольку он не может быть доступен другим классам для переопределения.
Во-вторых, хотя можно инициировать объекты типа интерфейса, но интерфейс реализуется классами, которые его реализуют, а не наследуются. И поскольку интерфейс может быть реализован (реализован) различными несвязанными классами, которые не находятся в одном пакете, модификатор защищенного доступа также недопустим. Так что для модификатора доступа у нас остается только публичный выбор.
В-третьих, интерфейс не имеет никакой реализации данных, включая переменные и методы экземпляра. Если есть логическая причина для вставки реализованных методов или переменных экземпляра в интерфейс, то это должен быть суперкласс в иерархии наследования, а не интерфейс. С учетом этого факта, поскольку ни один метод не может быть реализован в интерфейсе, поэтому все методы в интерфейсе должны быть абстрактными.
В-четвертых, Интерфейс может включать в себя только константы в качестве своих элементов данных, что означает, что они должны быть конечными, и, конечно, конечные константы объявляются как статические, чтобы сохранить только один их экземпляр. Поэтому static final также является обязательным для констант интерфейса.
Таким образом, в заключение, хотя использование открытых абстрактных перед методами и публичных статических финальных перед константами интерфейса допустимо, но, поскольку нет других опций, оно считается избыточным и не используется.