慕哥7131774
2020-03-31 19:27
2、怎么使父类有参构造方法中的age输出?
首先,你的父类Animal有void返回值 所以不是构造函数(构造函数没有返回值);另外父类如果有带参构造函数,那么此类就不会再提供默认的无参构造函数(除非显示的写出无参构造函数),而这个时候,你的子类必须要有一个带参构造函数并且使用supper(supper必须放在构造函数第一句,并且不能和this同时出现)调用父类带参构造函数,因为子类继承父类是先去父类里面找构造函数,其次去执行子类的构造函数。
你的Animal类的构造参数都写错了,不应该有void返回值,如果有返回值系统会认为是一个普通的方法,不是构造方法,所以相当于你没有定义有参的构造方法,那么默认的无参方法依然存在。
如果一个类没有提供无参构造器,在其子类构造对象时会自动生成一个无参构造器;
但是如果你自己声明了其他的构造器,父类就不会声明无参构造器了
这个问题我冒昧回答一下,我的理解就是你可以理解你创建的父类其实他也有一个父类为Object,你没有父类的无参构造方法,是会默认的调用Object的无参构造方法,然后你写的子类又调用Object的无参构造,我是这样理解的。仅供参考,我也是初学
Java入门第二季 升级版
530644 学习 · 6091 问题
相似问题