我的抽象类遇到了这个非常奇怪的问题(但在stackoverflow中很常见的问题)。我正在尝试实现这种层次结构:
抽象形状,类Circle,类Rectangle,类Square
Circle和Rectangle继承自Abstract Shape,square继承自Rectangle。我还使用ArrayList和一些方法创建了一个ShapeContainer类。我还添加了一个TestShapeContainer类来测试这些功能。下面是相关的代码(因为有很多代码我会尝试将相关内容放在一起):
摘要形状:
public abstract Shape
{
public double getArea();
public String toString();
}
错误消息:
Error at Shape.java Error: class, interface, or enum expected (lines: 1, 3, 5, 6) at abstract Shape
CLASS SHAPECONTAINER:
import java.util.ArrayList;
public class ShapeContainer
{
// PROPERTIES //
private ArrayList<Shape> container;
// CONSTRUCTORS //
public ShapeContainer()
{
container = new ArrayList<>();
}
// METHODS //
public void add(Shape s)
{
container.add(s);
}
public double getArea(int index)
{
return container.get(index).getArea();
}
public int getSize()
{
return container.size();
}
}
我在Circle,Rectangle和Square中有相应的getArea和toString方法。
我缺少什么?任何帮助将非常感激。
答案 0 :(得分:3)
您忘记了class
关键字:
public abstract class Shape {
public double getArea();
public String toString();
}
您需要将您的方法定义为抽象,如下所示:
public abstract class Shape {
public abstract double getArea();
public abstract String toString();
}