2012-10-28 55 views
1

我有這條線在我的課:Java繼承找不到符號

public class Line extends Figure,當我用這個命令編譯:

$ javac -cp :./stdlib.jar Line.java,我得到這個錯誤:

Line.java:26: cannot find symbol
symbol : constructor Figure()
location: class Figure
public Line(double x0, double y0, double xn, double yn, Color initColor) {
-------------------------------------------------------------------------^
// the dashes above are supposed to be spaces, but I couldn't figure out how to format it correctly. The caret is actually there in that position

通常我會理解這個錯誤,但這次我不知道發生了什麼。我的Figure.java文件位於與我的Line.java相同的目錄中。

回答

3

問題是圖中沒有空的(默認)構造函數。你的線有一個構造函數,它需要幾個參數。線延伸圖。如果您在Line的構造函數的超類中沒有調用特定的構造函數,Java將嘗試調用默認(無參數)構造函數,但圖沒有,所以會出現編譯錯誤。

在構造函數中的線,你需要這樣的:

public Line(double x0, double y0, ...) { 
    super(x0, y0); 
    ... 
}