你会收到此错误,因为没有构造函数的类具有默认构造函数,该构造函数没有参数,并且等效于以下代码:
public ACSubClass() { super();}
但是,由于你的baseClass声明了一个构造函数(因此没有默认值,否则将由编译器提供no-arg构造函数),这是非法的-扩展baseClass的类无法调用,
super();因为没有无参数的构造函数在baseClass中。
这可能有点违反直觉,因为你可能认为子类自动具有基类所具有的任何构造函数。
解决此问题的最简单方法是,基类不声明构造函数(因此具有默认的no-arg构造函数)或具有声明的no-arg构造函数(无论是单独使用还是与任何其他构造函数一起使用)。但是通常无法应用这种方法-因为你需要将任何参数传递到构造函数中,以构造类的合法实例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)