【发布时间】:2017-04-22 15:32:25
【问题描述】:
我带着一个简单的 OOP 问题来找你。 假设有三个类 - A、B 和 C。 B 和 C 都从 A 继承了一个静态变量。假设 A 将该变量的值定义为 0。 假设 B 和 C 都修改了这个静态变量的值。 我的问题是——由于静态变量在同一个类的成员之间保持不变,这是否意味着从子类设置超类变量的值不会影响超类的值?
换句话说,如果我们将 B 的变量的值更改为 1,那么对于 B 类而不是 C 或 A 的对象,该值将仅为 1?
【问题讨论】:
-
为什么不测试一下看看呢?你认为应该发生什么?是什么让你这么认为?
-
无论如何,您在标题中说的是覆盖,但在您的问题中,您说“B 和 C 都修改了这个静态变量的值”,这更接近于重新分配值。也许尝试通过发布适当的代码示例来澄清那部分。
-
你不能覆盖一个变量,更不用说一个静态变量了。您只能覆盖实例方法。
标签: java