Java静态变量的继承

时间:2018-11-26 11:21:42

标签: java inheritance static-variables

我的Base123类中有一个静态变量

class Base123 {
    public static int statvar;
}

我有一个派生类Inheritance111,它扩展了Base123

public class Inheritance111 extends Base123 {

    public static void main(String[] args) {
        System.out.println(Inheritance111.statvar);
        System.out.println(Base123.statvar);
        Base123.statvar=10;
        System.out.println(Inheritance111.statvar);
        System.out.println(Base123.statvar);
        System.out.println(statvar);
        Inheritance111.statvar=20;
        System.out.println(Inheritance111.statvar);
        System.out.println(Base123.statvar);
        System.out.println(statvar);
    }
}

我获得了以上代码的输出:

  

0 0 10 10 10 20 20 20

对于一个类,静态变量在该类的所有对象之间共享。但是,当扩展一个类时,子类中的继承变量是否也是同一变量?使用

进行的更改
Inheritance111.statvar=20;

正在更改Base123.statvar的值。

1 个答案:

答案 0 :(得分:1)

是的,即使您从诸如Inheritance111.statvar=20;之类的子类中调用变量,它也与Super类引用相同的变量。
 您可以参考此JavaDoc static fields