嗨,我不知道如何在这里的线上解决我的问题!!!
据说:
Set类型的add(Figura2D)方法不适用于参数(Rettangolo)
我尝试这样做:
package packAppello170919;
public class Figura2D {
private Object obj;
public Figura2D(){}
public Figura2D(Object figura){
if(figura instanceof Rettangolo){
obj= (Rettangolo)figura;
}//I do the same thing with another type of object(Cerchio)
}}}
Figura2D必须包含Cerchio和Rettangolo,但是我不知道该怎么做,我显然可以对其进行修改,但是我不能这样做,因为这是对练习的测试
我放置了一段代码,因此您可以进行测试。
谢谢
public static Set<Figura2D> generaSetFigure() {
Set<Figura2D> F = new HashSet<Figura2D>();
Punto p1 = new Punto(1,1);
Punto p2 = new Punto(2,2);
Punto p3 = new Punto(3,3);
Rettangolo r1 = new Rettangolo(p1,p2);
Rettangolo r2 = new Rettangolo(p1,p3);
Rettangolo r3 = new Rettangolo(p2,p3);
Cerchio c1 = new Cerchio(p1,1.0);
Cerchio c2 = new Cerchio(p1,2.0);
Cerchio c3 = new Cerchio(p3,1.0);
F.add(r1); F.add(r2); F.add(r3); //HERE!!!!
F.add(c1); F.add(c2); F.add(c3);
return F;
}
最佳答案
Rettangolo
不是Figura2D
的实例。
在Rettangolo
类中添加extends Figura2D
以使用继承。
public class Rettangolo extends Figura2D{}