静态代码块、非静态代码块、构造方法的执行顺序

来源:互联网 发布:oppo手机mac地址查询 编辑:程序博客网 时间:2024/06/05 20:22

父类:FatherStaticDemo

public class FatherStaticDemo {{System.out.println("father普通代码块");}static {System.out.println("father静态代码块");}public FatherStaticDemo() {System.out.println("父类构造");}}


子类:SonStaticDemo

public class SonStaticDemo extends FatherStaticDemo{{System.out.println("son普通代码块");}static{System.out.println("son静态代码块");}public SonStaticDemo(){System.out.println("子类构造");}}


测试类:Test

public class Test {{System.out.println("测试类的普通代码块");}static{System.out.println("测试类的静态代码块");}public static void main(String[] args) {SonStaticDemo s = new SonStaticDemo();}}

执行结果:



总结:

静态代码块,在加载类的时候就执行,并且在非静态代码块之前执行

非静态代码块,在创建类对象时候执行,不创建对象时不执行(如:测试类的非静态代码块未执行)

构造函数最后执行



阅读全文
0 0
原创粉丝点击