java如何用构造函数扩展类
我很难将calCir课程扩展到主要课程 我有一个构造函数
class calCir {
double radius;
calCir(double r) {
radius = r;
}
double AreaCircle() {
return Math.PI * (radius * radius);
}
double CircumferenceCircle() {
return 2 * Math.PI * radius;
}
}
我想使用Main扩展calCir,但由于构造函数的原因出现了一个错误
class Main{
public static void main(String args[]) {
错误:类calCir中的构造函数calCir不能应用于给定类型; 主类扩展了calCir 我对Java相当陌生,所以我仍然对如何使用继承感到困惑
下面是完整的代码,如果需要的话 https://repl.it/NA5S/8
# 1 楼答案
首先,在这种情况下,让
Main
扩展CalCir
是没有意义的第二,回到你问的具体问题
当一个类(例如
Child
)从另一个类(例如Parent
)扩展时,在Child
的构造函数中,它总是需要调用其父类的构造函数。如果您没有显式调用any,编译器将自动假定您正在调用父类的no-arg构造函数例如
相当于
如果在
Parent
中声明了一个带参数的构造函数,但没有声明arg-ctor:Child
调用Parent
的no arg ctor是非法的,因为它根本不存在因此,您需要明确地告诉编译器要调用哪个ctor: