у меня
class A {
int var;
public A(int x) {
var = x;
}
}
class B extends A {
int var2;
public B(int x, int y) {
super(...);
var2 = y;
x = f(y);
}
}
Для подкласса B мне нужно вычислить значение x, которое используется в конструкторе A. Если бы я мог свободно перемещать super
ниже своего x=f(y)
, тогда я мог бы передать результат конструктору A (супер ). Но super должен быть первой строкой в конструкторе B.
Есть ли способ инициализировать A правильным значением в первый раз? Что, если бы A.var был окончательным, и я не мог бы вернуться и изменить его после создания?
Конечно, я мог бы поставить super(f(y))
, но я мог представить случаи, когда это стало бы затруднительно.