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

静态代码块,普通代码块,构造函数的执行顺序

时间:2015-12-02 14:20:21      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

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

class Son extends Father{
    
    public Son(){
        System.out.println("...子类的构造方法...");
    }
    
    static{
        System.out.println("...子类的静态代码块...");
    }
    
    {
        System.out.println("...子类的普通代码块...");
    }
    
}

public class CodeBlock {
    
    public static void main(String[] args) {
        
        Son son = new Son();
    }

}

执行结果:

...父类的静态代码块...
...子类的静态代码块...
...父类的普通代码块...
...父类的构造方法...
...子类的普通代码块...
...子类的构造方法...

从执行结果可以看出:

静态代码块总是最先执行的,且父类的静态代码块优先执行于子类的静态代码块。

普通的代码块优先执行于构造方法

父类的普通代码块和构造方法优先于子类

 

静态代码块,普通代码块,构造函数的执行顺序

标签:

原文地址:http://www.cnblogs.com/winner-0715/p/5012581.html

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