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