类变量、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;

(静态语句块、类变量的赋值顺序是由语句在源文件中出现的顺序所决定)

上一篇下一篇

猜你喜欢

热点阅读