码迷,mamicode.com
首页 > 其他好文 > 详细

代码块执行顺序。

时间:2015-06-19 21:33:18      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

class Father1{

static{
System.out.println("....static Father.....");
}

{
System.out.println(".....父类非静态。。。");
}

public Father1(){
System.out.println("---父类构造方法----");
}
}

class Son1 extends Father1{

static{
System.out.println("....static Son.....");
}



public Son1(){
System.out.println("---子类构造方法-----");
}
{
System.out.println(".....子类非静态。。。");
}
}

public class Demo3 {


static{
System.out.println("....主函数静态代码.....");
}

{
System.out.println(".....主函数非--------静态代码。。。");
}

public static void main(String[] args) {

Son1 s = new Son1();
System.out.println("----输出完毕-------");
Demo3 d = new Demo3();
}

}

执行结果:

....主函数静态代码.....
....static Father.....
....static Son.....
.....父类非静态。。。
---父类构造方法----
.....子类非静态。。。
---子类构造方法-----
----输出完毕-------
.....主函数非--------静态代码。。。

所以顺序是:

从主函数所在的类执行静态代码块,

从父类执行静态代码块。

从子类执行静态代码块。

非静态代码块要在new对象,构造方法前是才执行;

父类构造方法

子类非静态

子类构造方法

代码块执行顺序。

标签:

原文地址:http://www.cnblogs.com/daxiong225/p/4589718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!