您的位置:首页 > 编程语言 > Java开发

一个题目深入理解 java继承中构造方法的执行顺序

2017-08-29 09:43 501 查看
class X {   

    Y b = new Y();    

    X() {

        System.out.print("X");

    }

}

class Y {

    Y() {            

        System.out.print("Y");

    }

}

public class 坑爹 extends X {                    //第一步   先执行父类的初始化,就是X的创建对象  然后x无参  所有先输出Y和X

                        

    Y y = new Y();  

    坑爹() {

        super();   

        System.out.print("坑爹");

    }

    public static void main(String[] args) {  

        new 坑爹();   

    }

}

结果会输出    :yxy坑爹

第一步   先执行父类的初始化,就是X的创建对象  然后x无参  所有先输出Y和X

第二部   载执行子类坑爹类中的 创建y的对象,在执行输出 坑爹

 注意:其中子类的无参方法中的super 没有执行,因为子类创建对象时,

    已经执行过一次父类的无参构造方法,所以不再执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: