问答详情
源自:6-3 序列化中子父类构造函数问题

在主函数中是怎么实现子类调用父类的构造函数

http://img.mukewang.com/55cff1950001dc1a07140515.jpg

函数中Bar2 bar2 = new Bar2();

oos.writeObject(bar2);

除了序列bar2对象外,还有上面作用?为什么控制台上会bar  bar1 bar2等输出

提问者:阿丁4513 2015-08-16 10:14

个回答

  • 特地学java
    2016-03-03 13:48:16

    我的理解是

    class bar1{

        public bar1(){

            ........//构造函数内容

        }

    }

    class bar2 extends bar1{

        public bar2(){

            super();//隐藏调用该语句,效果就是调用父类的构造函数

            ...........//bar2的构造函数内容

        }

    }

  • 傻熊
    2015-09-01 22:24:26

    子类的构造方法中,第一句有一个隐式的  super();  调用父类的构造方法,然后再执行子类构造方法的方法体。bar2的构造方法中输出“bar2”之前调用其父类bar1的构造方法,bar1的构造方法中在输出“bar1”之前调用其父类bar的构造方法,输出 bar  ,然后执行bar1的方法体输出bar1,之后再执行bar2的方法体输出bar2,结果就是 bar bar1 bar2