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