为了账号安全,请及时绑定邮箱和手机立即绑定

我有一个问题不懂

为什么在注释掉Animal(),创建一个Animal(int age)后,在子类Do类中中会报错,前面不是还有一个不带参数的eat()方法吗?

正在回答

4 回答

Animal(int age)是构造方法,而eat()是普通方法,不一样的。

0 回复 有任何疑惑可以回复我~

构造方法是方法中的特殊的一种。

调用时没有用显式super

而构造方法又没有无参的(被注释了)。

所以符合报错的条件。

0 回复 有任何疑惑可以回复我~

eat()是方法,而Animal()是构造函数,两者不一样

1 回复 有任何疑惑可以回复我~

你在子类中是不是调用父类的默认构造函数了?如果说你在父类中定义了一个有参数的构造函数,那么系统就不会生成无参数构造函数了,那么你在子类中调用的时候需要调用的是有参的构造函数,那么你还要传递参数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530631    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

我有一个问题不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信