继承时构造顺序

package com.tju.lab;

/**
 * Created by xiangyang.laixiang on 2016/8/2.
 */
public class A extends C{
    B b= new B();
    public A(){
        System.out.println("A");
    }
    public static void main(String args[])
    {
        A a= new A();
    }
}

class B{
    public B(){
        System.out.println("B");
    }
}

class C{
    B b = new B();
    public C(){
        System.out.println("C");
    }
}


### BCBA

###从输出结果来看,在执行时先构造所继承的对象,然后自己的构造函数

* 在这里A集成C,所以先构造C,C没有继承,所以直接进行构造,先构造本身所包含对象B,输出B,然后调用本身构造函数输出C,构造完C控制权回到A,A中包含对象B,所以输出B,然后调用A本身构造函数输出A,最终答案是BCBA *

### 在构造时所包含的类对象实例化顺序要高于类对象构造函数本身
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容