Все переменные, объявленные внутри интерфейса, являются неявно открытыми статическими конечными переменными (константами).
Из часто задаваемых вопросов по разработке интерфейса Java от Филиппа Шоу:
Переменные интерфейса являются статическими, поскольку интерфейсы Java не могут быть созданы сами по себе;значение переменной должно быть назначено в статическом контексте, в котором не существует ни одного экземпляра.Последний модификатор гарантирует, что значение, присвоенное переменной интерфейса, является истинной константой, которая не может быть переназначена программным кодом.
Поскольку интерфейс не имеет прямого объекта, единственный способ получить к ним доступ - использоватькласс / интерфейс и, следовательно, поэтому, если переменная интерфейса существует, она должна быть статической, иначе она вообще не будет доступна для внешнего мира.Теперь, поскольку оно статично, оно может содержать только одно значение, и любые классы, которые его реализуют, могут его изменить, и, следовательно, все будет беспорядочно.
Следовательно, если вообще существует переменная интерфейса, она будет неявно статической, окончательно и очевидно публично !!!