您无法在Java中覆盖变量,因此实际上您有两个
a变量-一in
Foo和in in
Bar。在另一方面
addFive()的方法是多态的,因而它修改
Bar.a(
Bar.addFive()被调用时,尽管静态类型的
f存在
Foo)。
但最终你访问
f.a这个参考使用已知类型的编译过程中解决了
f,这是
Foo。因此
Foo.a从未被感动。
Java中的BTW非最终变量 绝对 不能公开。

您无法在Java中覆盖变量,因此实际上您有两个
a变量-一in
Foo和in in
Bar。在另一方面
addFive()的方法是多态的,因而它修改
Bar.a(
Bar.addFive()被调用时,尽管静态类型的
f存在
Foo)。
但最终你访问
f.a这个参考使用已知类型的编译过程中解决了
f,这是
Foo。因此
Foo.a从未被感动。
Java中的BTW非最终变量 绝对 不能公开。