2014-12-04 93 views
0

我必須命名此代碼中的所有錯誤,但我不知道在類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

public class裏面的公共類?請粘貼例外 – AndreDuarte 2014-12-04 16:00:24

+0

Brace丟失:public abstract int mv(); } – Scooter 2014-12-04 16:02:11

回答

1

與錯誤 -

我)public B() { super(); //ne postoji konstruktor } 超級開始()將調用構造函數A班210人,但沒有定義。因爲,您已經在類A()中定義了其他構造函數,所以您需要顯式定義默認的無參數構造函數(最小可見性應該受到保護)。

ii)public B(int r) { super(b); b=r; } //HERE super(b); b = r。你應該先定義一個變量,然後才能使用。這裏是什麼?它在哪裏宣佈。這應該是

public B(double r) { super(r); } //HERE 我改變了r的類型爲double,因爲如果它是整數超級(r)期望在類A中的類型爲integer的構造函數。

iii)您在public B(double r) { super(r);} //HERE之前關閉B類 刪除此代碼上方的}大括號。

iv)最後一個 - mv是A類中未實現的方法,B擴展了A(B不是抽象的)。所以,B應該實施這個方法。 public int mv() {//Body }

0

你這裏有太多的錯誤...

public B(int r) { //BODY } 

應該

public void B(int r) { //BODY }