子类需要负责维护父类(又称超类)的构造函数,如果子类的构造函数没有super(参数); 即没有向超类传参数,那么超类必须有无参的构造函数。如果一个类定义了有参数的构造函数,编译器便不会再提供无参的默认构造函数。
你应该是用Animal类派生了一个子类,Animal类定义了有参的构造函数,在子类的构造函数中有没有super(参数);,所以编译器报错了
会不会是你父类写了一个带参数的构造方法,然后子类继承时的构造方法调用了父类的无参构造方法。
换句话说就是,你的类如果定义了一个带参数的构造方法,最好就要加个 类名() 的无参构造方法。
哥们,这事真不怪你。
你把超类(父类)的构造函数设置成public的就行了。
先不要使用private的构造函数。
缺少默认构造 void 类名(){}
代码腻。。