В Java переменные, объявленные с модификаторами private или protected, не могут быть использованы непосредственно в интерфейсах (interfaces). Интерфейсы содержат только абстрактные методы, константы и методы по умолчанию (default methods), которые все являются public. Поэтому любая переменная в интерфейсе также должна быть объявлена как public и static и иметь значение, которое не может быть изменено. Например, следующий код корректно определяет интерфейс с публичной статической константой: public interface MyInterface {
public static final int MY_CONSTANT = 10;
} Если вы хотите создать интерфейс с переменными, которые должны быть использованы другими классами, то можно использовать ключевое слово public вместо private или protected. Например, следующий код определяет интерфейс с публичной переменной myVariable: public interface MyInterface {
public int myVariable = 20;
} Таким образом, в интерфейсах в Java не могут быть использованы переменные с модификаторами доступа privat