“无法找到符号”错误消息调用超类构造函数

时间:2011-03-11 17:28:14

标签: java

我有此错误消息

./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

3 个答案:

答案 0 :(得分:3)

您正在尝试调用MyEllipse中的构造函数,该构造函数可以将MyPoint和两个int值作为参数。编译器告诉你它找不到这样的构造函数。当然, 并不具有该签名。它可以调用

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

或类似的东西,只要有三个参数,MyPosition可以分配转换为第一个参数,int可以分配转换为第二个和第三个。

(严格来说,也可能有一个varargs构造函数,但暂时忽略它......)

如果没有看到MyEllipse的代码,我们无法确定实际可用的内容。查看构造函数并检查您确实要调用哪一个。

答案 1 :(得分:2)

IT表示没有

的构造函数
(position, radius*2, radius*2); 

签名MyEllipse


你正在打电话

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

答案 2 :(得分:0)

我们需要查看MyEllipse源代码。但我猜你的问题是MyEllipse中没有带有签名“MyPoint,int,int”的构造函数。