首先,这里是我的抽象类:扩展抽象类和使用方法使用不同的参数
public abstract class GeometricObject2D implements Comparable {
public abstract boolean contains(GeometricObject2D g);
public abstract boolean contains(double x, double y);
public abstract boolean overlaps(GeometricObject2D g);
public abstract int compareTo(Object temp);
public abstract double getArea();
public abstract double getPerimeter();
}
我应该把它与其他两个类,ComparableCircle2D和ComparableRectangle2D延伸。两者都包含所有的方法,不同的是他们用自己的论点在包含和重叠方法,例如:
public class ComparableCircle2D extends GeometricObject2D {
//...
public boolean contains(ComparableCircle2D circle){
//method
}
//...
public boolean overlaps(ComparableCircle2D circle){
//method
}
//...
}
这是我的错误:
错误:(1 ,8)java:ComparableCircle2D不是抽象的,也不会覆盖GeometricObject2D中的抽象方法重叠(GeometricObject2D)。
其他班也一样。我不完全明白什么是错的,所以一个解释和一个解决方案将不胜感激。
P.S:参数必须保持不变。
当你实现'C时,你应该使用泛型而不是原始类型omparable“,即'implements Comparable'和'compareTo(Geometric2DObject other)'。 –