2011-03-11 31 views
0

我有這樣的錯誤消息「無法找到符號」錯誤消息調用超類的構造函數

./MyCircle.java:13: cannot find symbol 

symbol : constructor MyEllipse(MyPoint,int,int) 

location: class MyEllipse 

super(position, radius*2, radius*2); 

和我的代碼是

public class MyCircle extends MyEllipse { 

    final String TYPE = "Circle"; 

    public double radius; 

    public MyCircle(int radius, MyPoint position) { 
     super(position, radius*2, radius*2); 
     this.radius = radius; 
    } 

    public void printDetails() { 
     double area = CalcArea(); 
     System.out.println("The shape is " +TYPE); 
     System.out.println("The area is " +area); 
    } 
} // class end 
+0

請提出問題。 – Gabe 2011-03-11 17:30:21

+0

什麼'MyEllipse'類的構造函數? – 2011-03-11 17:33:07

+0

如果您更加努力地提出問題並實際標記正確答案,我會更傾向於幫助您 – Marlon 2011-03-11 17:34:07

回答

2

它說,有一個與

(position, radius*2, radius*2); 
沒有constuctor在 MyEllipse

01可

簽名


您呼叫

super(position, radius*2, radius*2); 
+1

...或換句話說,簽名'(MyPoint,int,int)'。 – 2011-03-11 17:32:41

3

你試圖調用MyEllipse一個構造函數,可以採取MyPoint和兩個int值作爲參數。編譯器告訴你它找不到這樣的構造函數。它不是當然的正是這樣的簽名。它可以調用

MyEllipse(Object, double, int) 
MyEllipse(MyPoint, long, long) 

或任何類似,只要有三個參數,MyPosition可分配變換爲第一位的,而int可分配轉換到第二和第三位。

(嚴格地說還可以有一個可變參數的構造函數,但讓我們忽略的那一刻...)

我們不知道什麼是實際可用沒有看到代碼MyEllipse。看看構造函數並檢查你真正想要調用哪一個。

+0

職位 - > MyPoint – 2011-03-11 17:32:27

+0

@Mike:是的,我正在糾正它,因爲你評論:) – 2011-03-11 17:33:09

0

我們就需要看MyEllipse源。但是我猜你的問題是MyEllipse中沒有簽名「MyPoint,int,int」的構造函數。

相關問題