2011-03-11 70 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”的构造函数。