2010-01-06 38 views
1

我正在嘗試設置參數爲抽象類:的Java多態性/抽象類的幫助

public abstract class NewMath { 
    public abstract int op (int intOne, int intTwo); 
} 

這裏是擴展子類:

public class MultMath extends NewMath { 
    public int op (int intOne, int intTwo){ 
     return intOne + intTwo; 
    } 
} 

但是當我嘗試實例化一個對象,而定義這樣的參數:

public class TestNewMath { 
    public static void main(String [] _args) { 
     MultMath multObj = new MultMath(3,5); 
    } 
} 

它不起作用。它給了我這個錯誤:

 
TestNewMath.java:3: cannot find symbol 
symbol : constructor AddMath(int,int) 
location: class AddMath 
     AddMath addObj = new AddMath(3, 5); 

我知道我失去了一些東西。它是什麼?

回答

6

你調用具有兩個int參數的構造函數,但您尚未創建這樣一個構造函數。您只創建了一個名爲'op'的方法,它接受兩個int參數。

+0

我在哪裏把構造函數? – Phil 2010-01-06 21:26:25

+0

構造函數是一種沒有返回類型和類名稱的方法。在這種情況下, public MultMath(int intOne,int intTwo) – Confusion 2010-01-07 08:43:06

1

你會把構造函數中的「MultMath」類,如下所示:

public MultMath(int arg0, int arg1){ 

} 

這將擺脫你的編譯錯誤。或者,你可以這樣做:

public class TestNewMath { 
    public static void main(String [] _args) { 
    MultMath multObj = new MultMath(); 
    int x=1, y=2; 
    multObj.op(x,y);   

}