Поля в интерфейсах неявно public final static
.
static
будет означать, что они не зависят от экземпляров. Это, вероятно, не то, что вы хотите.
final
означает, что они должны быть назначены ровно один раз во время инициализации класса, так как поля также static
. Обычно это означает присвоение в объявлении, но может использовать статический инициализатор. Если бы они были полями экземпляра (не static
), их нужно было бы назначить либо в объявлении, либо в конструкторах (которые неявно или явно вызывают super
вместо конструктора "this
"), либо в экземпляре инициализатора.
Возможно, вам следует переместить поля экземпляра в реализующий класс и пометить их final
.