我一定花了一个多小时试图找出一些意外行为的原因。我最终意识到没有像我期望的那样设置一个字段。在耸耸肩继续前进之前,我想了解为什么会这样。
在运行下面的示例时,我希望输出为真,但它是假的。其他测试表明,我总是得到该类型默认值。
public class ClassOne {
public ClassOne(){
fireMethod();
}
protected void fireMethod(){
}
}
public class ClassTwo extends ClassOne {
boolean bool = true;
public ClassTwo() {
super();
}
@Override
protected void fireMethod(){
System.out.println("bool="+bool);
}
public static void main(String[] args) {
new ClassTwo();
}
}
输出:
bool=false