【发布时间】:2019-04-07 21:40:26
【问题描述】:
当我通过使用Checks.y(Checks 是一个子类)调用静态变量y 时,不会执行静态块并且不会更新y 的值。
class Par {
static int y = 4;
}
class Checks extends Par {
static {
y = 5;
}
}
public class Check {
public static void main(String args[]) {
System.out.println(Checks.y); // here printing 4
}
}
由于所有子类之间共享静态,因此应该更新该值。
这背后的原因是什么?
【问题讨论】:
标签: java inheritance jvm static-variables static-block