我班上有这一行:
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
相同的目录中。
答案 0 :(得分:3)
问题是图中没有空(默认)构造函数。你的Line有一个构造函数,它有几个参数。线延伸图。如果你没有在Line的构造函数中调用超类中的特定构造函数,Java将尝试调用默认(无参数)构造函数,但是图中没有构造函数,因此会出现编译错误。
在Line的构造函数中,您需要以下内容:
public Line(double x0, double y0, ...) {
super(x0, y0);
...
}