课程
/后端开发
/Java
/Java入门第二季 升级版
2、怎么使父类有参构造方法中的age输出?
2020-03-31
源自:Java入门第二季 升级版 9-7
正在回答
首先,你的父类Animal有void返回值 所以不是构造函数(构造函数没有返回值);另外父类如果有带参构造函数,那么此类就不会再提供默认的无参构造函数(除非显示的写出无参构造函数),而这个时候,你的子类必须要有一个带参构造函数并且使用supper(supper必须放在构造函数第一句,并且不能和this同时出现)调用父类带参构造函数,因为子类继承父类是先去父类里面找构造函数,其次去执行子类的构造函数。
你的Animal类的构造参数都写错了,不应该有void返回值,如果有返回值系统会认为是一个普通的方法,不是构造方法,所以相当于你没有定义有参的构造方法,那么默认的无参方法依然存在。
慕粉giner
如果一个类没有提供无参构造器,在其子类构造对象时会自动生成一个无参构造器;
但是如果你自己声明了其他的构造器,父类就不会声明无参构造器了
慕哥7131774 提问者
这个问题我冒昧回答一下,我的理解就是你可以理解你创建的父类其实他也有一个父类为Object,你没有父类的无参构造方法,是会默认的调用Object的无参构造方法,然后你写的子类又调用Object的无参构造,我是这样理解的。仅供参考,我也是初学
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答`为什么我把父类的无参构造方法注释了,子类的无参构造方法还会执行?
5 回答父类的构造方法有参时,子类无法继承?
1 回答子类和父类的有参构造方法
2 回答子类对象构造时,只能调用父类无参的构造方法?
4 回答为什么把父类的变量改成静态变量(父类中写有带参构造方法),子类中无参的构造方法是对的