期望的类,接口或枚举

时间:2014-12-04 15:57:09

标签: java inheritance enums

我必须在此代码中列出所有错误,但我不知道在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
}

2 个答案:

答案 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 }