我必须列出这段代码中的所有错误,但我不知道 B 类中的错误,我得到了预期的错误类、接口(interface)或枚举。这是什么意思?
public abstract class A {
private double a;
public A(A r){
a = r.a;
}
public A(double a){
this.a = a;
}
public double ma(){
return a;
}
public abstract int mv();
}
public class B extends A {
private int b;
public B() {
super(); //ne postoji konstruktor
}
public B(B o) {
b=o.b;
} //nije pozvan odgovarajuci konstruktor
}
public B(int r) {
super(b); b=r;
} //HERE
}
最佳答案
从错误开始 -
i) 公共(public) B() {
极好的();//ne postoji konstruktor
}
super() 将调用 A 类中的构造函数 public A(){}
,但它尚未定义。由于您已经在类 A() 中定义了其他构造函数,因此您需要显式定义默认的无参数构造函数(应保护最小可见性)。
ii) 公共(public) B(int r) {
高超); b=r;
}//这里
super (b);b = r 。您应该先定义一个变量,然后才能使用。这里的b是什么?在哪里声明的。这应该是
公共(public) B(双 r) {
super (r);
}//这里
我将 r 的类型更改为 double,因为如果它是整数,则 super(r) 需要类 A 中类型为整数的构造函数。
iii) 您要在 public B(double r) { super(r);}//HERE
之前关闭 B 类
删除此代码上方的 } 大括号。
iv) 最后一个 - mv
是 A 类中未实现的方法,B 扩展了 A(B 不是抽象的)。所以,B应该实现这个方法。 public int mv() {//正文}
关于java - 需要类、接口(interface)或枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27298351/