私は持っています
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の場合、Aのコンストラクターで使用される値xを計算する必要があります。super
自分の下に自由に移動できる場合x=f(y)
は、結果をA(スーパー)のコンストラクターに渡すことができます。ただし、superはBのコンストラクターの最初の行である必要があります。
初めてAを適切な値で初期化する方法はありますか?A.varが最終的なもので、構築後に戻って変更できなかった場合はどうなりますか?
確かに、置くことはできsuper(f(y))
ますが、これが難しくなる場合を想像することができました。