我必须在此代码中列出所有错误,但我不知道在B类中是错误的,我得到了错误类,接口或枚举。这是什么意思?
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
}
答案 0 :(得分:1)
从错误开始 -
i)public B() {
super(); //ne postoji konstruktor
}
super()将在类A中调用构造函数public A(){}
,但它没有定义。因为,您已经在类A()中定义了其他构造函数,所以需要显式定义缺省的无参数构造函数(应该保护最小可见性)。
ii)public B(int r) {
super(b); b=r;
} //HERE
super(b); b = r。您应该在使用之前定义变量。这是什么?它在哪里宣布。这应该是
public B(double r) {
super(r);
} //HERE
我将r的类型更改为double,因为如果它是整数而不是super(r),则期望A类中的构造函数的类型为整数。
iii)你在public B(double r) { super(r);} //HERE
之前关闭了B组
删除此代码上方的}大括号。
iv)最后一个 - mv
是A类中未实现的方法,B是A(B不是抽象的)。所以,B应该实现这个方法。 public int mv() {//Body }
答案 1 :(得分:0)
你这里有太多错误......
public B(int r) { //BODY }
应该是
public void B(int r) { //BODY }