我的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
的值。 最佳答案
是的,即使您从子类(如Inheritance111.statvar=20;
)调用变量,它也与Super类引用相同的变量。
您可以参考此JavaDoc static fields