在Java中,字段不会被覆盖,而是被隐藏。这意味着
Increase.a和
SubIncrease.a是 独立的
,可以被改变并且分别查询字段。因为您的变量的类型
f为
Increase,所以表达式
f.a返回超类字段的值。但是该
add()方法 被
覆盖并
f.add()调用子类方法,该方法将修改子类字段。
隐藏字段很少有意义,因此应避免使用它。如果要在子类中拥有一个具有不同默认值的字段,请仅在超类中对其进行定义,并在子类构造函数中为其分配一个值。

在Java中,字段不会被覆盖,而是被隐藏。这意味着
Increase.a和
SubIncrease.a是 独立的
f为
Increase,所以表达式
f.a返回超类字段的值。但是该
add()方法 被
f.add()调用子类方法,该方法将修改子类字段。
隐藏字段很少有意义,因此应避免使用它。如果要在子类中拥有一个具有不同默认值的字段,请仅在超类中对其进行定义,并在子类构造函数中为其分配一个值。