问答详情
源自:9-7 Java 中的 super 的使用

为什么我把父类无参的构造方法注释了,子类无参的构造方法没有显示错误?


 2、怎么使父类有参构造方法中的age输出?

http://img2.mukewang.com/5e8328280001bf6510730601.jpghttp://img3.mukewang.com/5e83284a0001519706690459.jpghttp://img4.mukewang.com/5e83285900019bf906130301.jpg

提问者:慕哥7131774 2020-03-31 19:27

个回答

  • weixin_慕雪9446803
    2020-06-12 19:25:02

    首先,你的父类Animal有void返回值 所以不是构造函数(构造函数没有返回值);另外父类如果有带参构造函数,那么此类就不会再提供默认的无参构造函数(除非显示的写出无参构造函数),而这个时候,你的子类必须要有一个带参构造函数并且使用supper(supper必须放在构造函数第一句,并且不能和this同时出现)调用父类带参构造函数,因为子类继承父类是先去父类里面找构造函数,其次去执行子类的构造函数。



  • blowwind
    2020-04-12 23:55:55

    你的Animal类的构造参数都写错了,不应该有void返回值,如果有返回值系统会认为是一个普通的方法,不是构造方法,所以相当于你没有定义有参的构造方法,那么默认的无参方法依然存在。

  • qq_慕神6128318
    2020-04-02 11:19:24

    如果一个类没有提供无参构造器,在其子类构造对象时会自动生成一个无参构造器;

    但是如果你自己声明了其他的构造器,父类就不会声明无参构造器了

  • regardless5601147
    2020-04-01 15:47:56

    为什么我把父类无参的构造方法注释了,子类无参的构造方法没有显示错误?

    这个问题我冒昧回答一下,我的理解就是你可以理解你创建的父类其实他也有一个父类为Object,你没有父类的无参构造方法,是会默认的调用Object的无参构造方法,然后你写的子类又调用Object的无参构造,我是这样理解的。仅供参考,我也是初学