黑马程序员技术交流社区

标题: 静态代码块,构造代码块和构造方法优先级 [打印本页]

作者: zx0210    时间: 2015-9-2 02:15
标题: 静态代码块,构造代码块和构造方法优先级
本帖最后由 zx0210 于 2015-9-2 02:17 编辑

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
静态初始化块,顶层父类大于间接父类,大于直接父类,大于自己。
非静态初始化块,先顶层,再间接,再直接,最后自己。
同级的话,先如同初始化块,然后,构造器。
有句俗话,一定有了爸爸,才会有儿子。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2