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

子类继承父类的时候构造器和非静态自由块的调用顺序

时间:2015-05-26 22:44:12      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

子类继承父类的时候构造器和非静态自由块的调用顺序
new 一个子类的时候的访问顺序:

技术分享


class Creature {
    {
        System .out. println("creature 的非静态初始化 ");
    }

    public Creature () {
         super();
        System .out. println("creature 的构造方法 ");
    }

}

class Animal extends Creature {
    {
        System .out. println("animal 的非静态初始化 ");
    }

    public Animal () {
         super();
        System .out. println("animal 的构造方法 ");
    }

}

public class Monkey extends Animal {
    {
        System .out. println("monkey 的非静态初始化 ");
    }

    public Monkey () {
         super();
        System .out. println("monkey 的构造方法 ");
    }

    public static void main (String[] args) {
         new Monkey();
    }

}

输出结果:

技术分享


非静态初始化块的执行总是先于构造器执行的



super(Para p1,Para p2......); 根据参数调用父类对应的构造方法

this(Para p1,Para p2......);  根据参数调用本类对应的构造方法

对于一个无参的构造器,会有一个默认的super(),她会调用父类的无参的构造方法





















子类继承父类的时候构造器和非静态自由块的调用顺序

标签:

原文地址:http://www.cnblogs.com/ZhangJinkun/p/4531702.html

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