【发布时间】:2012-05-28 17:40:39
【问题描述】:
我正在尝试使用这样的静态块:
我有一个名为Base.java的基类
public class Base {
static public int myVar;
}
还有一个派生类Derived.java:
public class Derived extends Base {
static
{
Base.myVar = 10;
}
}
我的main函数是这样的:
public static void main(String[] args) {
System.out.println(Derived.myVar);
System.out.println(Base.myVar);
}
这会将输出打印为0 0,正如我预期的10 0。有人可以解释这种行为吗?另外,如果我希望我的派生类设置静态变量的值,我该如何实现?
【问题讨论】:
-
因为类没有初始化,所以静态块没有初始化。但是您取消注释(new Derived() )它将打印 10,10,但它永远不会打印 10,0
标签: java inheritance static static-block