有静态修饰符程序的执行过程

fatedgar 2011-12-28
class Test0 {
    public static String staticField = "父类-静态变量";
    public String field = "父类-普通变量";
    public Test0() {
        System.out.println("父类-构造器");
    }
    static {
        System.out.println(staticField);
        System.out.println("父类-静态初始化块");
    }
    {
        System.out.println(field);
        System.out.println("父类-初始化块");
    }
}
public class Test1 extends Test0{
    public static String staticField = "子类*静态变量";
    public String field = "子类*普通变量";
    static {
        System.out.println(staticField);
        System.out.println("子类*静态初始化块");
    }
    {
        System.out.println(field);
        System.out.println("子类*初始化块");
    }
    public Test1() {
        System.out.println("子类*子类构造器");
    }
    public static void main(String args[]) {
        System.out.println("main方法");
        Test1 test1 = new Test1();
    }
}
fatedgar 2011-12-28
输出结果为:

父类-静态变量
父类-静态初始化块
子类*静态变量
子类*静态初始化块
main方法
父类-普通变量
父类-初始化块
父类-构造器
子类*普通变量
子类*初始化块
子类*子类构造器
Global site tag (gtag.js) - Google Analytics