为什么在注释掉Animal(),创建一个Animal(int age)后,在子类Do类中中会报错,前面不是还有一个不带参数的eat()方法吗?
Animal(int age)是构造方法,而eat()是普通方法,不一样的。
构造方法是方法中的特殊的一种。
调用时没有用显式super
而构造方法又没有无参的(被注释了)。
所以符合报错的条件。
eat()是方法,而Animal()是构造函数,两者不一样
你在子类中是不是调用父类的默认构造函数了?如果说你在父类中定义了一个有参数的构造函数,那么系统就不会生成无参数构造函数了,那么你在子类中调用的时候需要调用的是有参的构造函数,那么你还要传递参数