标签:
class A{  
    int m=1;
    {System.out.println("111");}//1-->111
    A(){
        speak();//4-->直接执行子类的方法5
    }
    C c = new C();        //2-->
    {System.out.println("222");}
    void speak(){
        System.out.println("a");
    }
}
class C{
    C(){
        System.out.println("c");//3-->c
                                //7-->c
    }
}
class B extends A{
    int m = 5;          //10-->
    {System.out.println("333");}
    B(){
        System.out.println("b");//8-->b
    }
    C c = new C();        //6-->
    void speak(){
        System.out.println(m);//5-->0
                              //9-->
                              //11-->5
    }
    {System.out.println("444");}
    public static void main (String[] args){
        B b = new B();
        b.speak();
    }
}
注释后面为执行顺序和输出结果.
子父类中码静态代块 构造代码块. 代码块 构造函数 成员变量 实例变量 执行顺序
标签:
原文地址:http://www.cnblogs.com/huiit/p/5451473.html