У меня есть абстрактный класс, где я хочу объявить конечные переменные.
Однако я хочу присвоить значения этим переменным только в конструкторах моих подклассов.
По-видимому, это невозможно, потому что все "окончательные поля должны быть инициализированы". Я не понимаю, почему, поскольку невозможно создать экземпляр абстрактного класса.
То, что я хотел бы иметь, выглядит примерно так:
abstract class BaseClass {
protected final int a;
}
class SubClass extends BaseClass {
public SubClass() {
a = 6;
}
}
Я представляю что-то подобное методам при реализации интерфейса. Затем вам также необходимо реализовать методы в классе (sub).