【问题标题】:Is a static data member inherited in Java?静态数据成员是否在 Java 中继承?
【发布时间】:2020-09-05 04:52:22
【问题描述】:

父类的静态变量会被继承给子类,还是会创建一个新变量?

例如,class Aclass B extends A 的静态计数器变量是否应该给出相同的值(如果我们没有为 class B 定义新的计数器)?

【问题讨论】:

  • 何不试试看呢?
  • “Java 继承也传递静态成员” - 错误

标签: java oop inheritance static member


【解决方案1】:

不,静态变量的行为与非静态变量不同。如果您使用继承类之一更改静态变量的值,它将影响所有其他继承类数据。

因为静态变量只创建一次。即使您正在创建多个对象,也不会一次又一次地创建静态变量。它们在执行开始时创建并存储。当您访问静态变量时,您将获得相同的变量。 即

如果您以 B.count 或 C.count 身份访问,您将获得相同的变量。 因此,您只有一个变量,然后您无法在单个变量中分别维护两个对象的计数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2013-06-14
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多