我有
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.如果我可以自由移动超出我的x = f(y),那么我可以将结果传递给A的构造函数(超级).但是super必须是B构造函数中的第一行.
有没有办法在第一次用适当的值初始化A?怎么样的A.var是最终的,我不能回去并在施工后改变它?
当然,我可以把超级(f(y)),但我可以想象这会变得困难的情况.