class Demo
{
public static void main(String[] args)
{
Zi z=new Zi();
z.show();
}
}
class Fu
{
int num=8;
static{
System.out.println("Fu 静态代码块 run");
}
{
System.out.println("Fu 构造代码块 run num="+num);//8
num=9;
System.out.println("Fu 构造代码块 run num="+num);//9
}
public Fu(){
System.out.println("fu 构造方法 num="+num);//9
num=10;
System.out.println("fu 构造方法 num="+num);//10
show();//fu
}
public void show(){
System.out.println("fu show run");
}
}
class Zi extends Fu
{
int number=1;//显示初始化
static{
System.out.println("Zi 静态代码块 run");
}
{
System.out.println("构造代码块 number="+number);//1
number=2;
System.out.println("构造代码块 number="+number);//2
}
public Zi(){
System.out.println("zi 构造方法 number="+number);//2
number=3;
System.out.println("zi 构造方法 number="+number);//3
}
public void show(){
System.out.println("zi show number="+number);//1,2,3
}
}
我已经被成功的绕进去了,优先级,父类静态代码块>子类静态代码块>父类构造代码块>父类构造方法>子类构造代码块>子类构造方法 作者: a80C51 时间: 2015-9-2 08:02
静态初始化块,顶层父类大于间接父类,大于直接父类,大于自己。
非静态初始化块,先顶层,再间接,再直接,最后自己。
同级的话,先如同初始化块,然后,构造器。
有句俗话,一定有了爸爸,才会有儿子。