美文网首页
继承时构造顺序

继承时构造顺序

作者: dependmyse | 来源:发表于2016-08-02 17:31 被阅读0次
    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 *
    
    ### 在构造时所包含的类对象实例化顺序要高于类对象构造函数本身
    

    相关文章

      网友评论

          本文标题:继承时构造顺序

          本文链接:https://www.haomeiwen.com/subject/swafsttx.html