1

クラスに次の行があります。

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

4

1 に答える 1

3

問題は、Figure に空の (既定の) コンストラクターがないことです。あなたの Line には、いくつかのパラメーターを取るコンストラクターがあります。線は図を延長します。Line のコンストラクターでスーパー クラスの特定のコンストラクターを呼び出さない場合、Java は既定の (パラメーターなしの) コンストラクターを呼び出そうとしますが、Figure にはコンストラクターがないため、コンパイル エラーが発生します。

Line のコンストラクターには、次のようなものが必要です。

public Line(double x0, double y0, ...) {
    super(x0, y0);
    ...
}
于 2012-10-28T15:40:53.403 に答える