我编了一个JAVA程序 用Eclipse 编的 它老是报错 “没有为缺省构造函数定义隐式超构造函数Animal()。

它说必须定义显式构造函数。
2024-11-26 08:09:12
推荐回答(5个)
回答1:

子类需要负责维护父类(又称超类)的构造函数,如果子类的构造函数没有super(参数); 即没有向超类传参数,那么超类必须有无参的构造函数。如果一个类定义了有参数的构造函数,编译器便不会再提供无参的默认构造函数。

你应该是用Animal类派生了一个子类,Animal类定义了有参的构造函数,在子类的构造函数中有没有super(参数);,所以编译器报错了

回答2:

会不会是你父类写了一个带参数的构造方法,然后子类继承时的构造方法调用了父类的无参构造方法。
换句话说就是,你的类如果定义了一个带参数的构造方法,最好就要加个 类名() 的无参构造方法。

回答3:

哥们,这事真不怪你。

你把超类(父类)的构造函数设置成public的就行了。
先不要使用private的构造函数。

回答4:

缺少默认构造 void 类名(){}

回答5:

代码腻。。