当我通过使用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
}
}
由于静态变量在所有子类间共享,其值应该被更新。
这背后可能的原因是什么?