码迷,mamicode.com
首页 > 编程语言 > 详细

java类与继承的执行顺序

时间:2014-12-12 14:53:08      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   java   div   log   as   br   

1.子类

public class TestClassLife extends TestClassLifeSuper {    

    public TestClassLife() {
        System.out.println("3.构造行数被访问");
    }

    {
        System.out.println("2.初始化块被访问");
    }

    static {
        System.out.println("1.静态初始化块被访问");
    }
 
    public void Go() {     
        System.out.println("4.方法体");
    }
}

2.父类

public class TestClassLifeSuper {    
    public TestClassLifeSuper() {
        System.out.println("3.父构造行数被访问");
    }

    {
        System.out.println("2.父初始化块被访问");
    }

    static {
        System.out.println("1.父静态初始化块被访问");
    }

    private static String a = "1";
    
    public void Go() {
        String b = a;
        System.out.println("4.父方法体");
    }
}

最终执行结果

1.父静态初始化块被访问
1.静态初始化块被访问
2.父初始化块被访问
3.父构造行数被访问
2.初始化块被访问
3.构造行数被访问
4.方法体

总统逻辑,先静态初始化,然后普通初始化,然后构造函数,先父后子。特殊情况,子类的静态初始化会紧跟父类的静态初始化

java类与继承的执行顺序

标签:style   blog   color   sp   java   div   log   as   br   

原文地址:http://www.cnblogs.com/happyday56/p/4159650.html

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