类变量、static初始化
2017-04-25 本文已影响0人
恶魔幻心
class Father{
public static int a = 1;
static{
a = 2;
}
}
class Child extends Father{
public static int b = a;
}
public class ClinitTest{
public static void main(String[] args){
System.out.println(Child.b);
}
}
执行上面的代码,会打印出 2,也就是说 b 的值被赋为了 2。
如果我们颠倒一下 Father 类中“public static int a = 1;”语句和“static语句块”的顺序,程序执行后,则会打印出1;
(静态语句块、类变量的赋值顺序是由语句在源文件中出现的顺序所决定)