类型Set <figura2d>中的方法add(Figura2D)不适用于参数(Rettangolo)

时间:2017-10-17 18:16:09

标签: java compiler-errors

嗨,我不知道如何在这里解决我的问题! 它说: 类型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;
        }

1 个答案:

答案 0 :(得分:0)

Rettangolo不是Figura2D的实例。 在Rettangolo类中添加extends Figura2D以使用继承。

public class Rettangolo extends Figura2D{}