Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抽象类错误:应为类、接口或枚举_Java_Oop_Inheritance_Abstract - Fatal编程技术网

Java 抽象类错误:应为类、接口或枚举

Java 抽象类错误:应为类、接口或枚举,java,oop,inheritance,abstract,Java,Oop,Inheritance,Abstract,我在抽象类中遇到了这个相当奇怪(但在stackoverflow中相当常见)的问题。我试图实现这种层次结构: 抽象形状、类圆、类矩形、类正方形 圆形和矩形继承自抽象形状,正方形继承自矩形。我还创建了一个ShapeContainer类,其中包含一个ArrayList和几个方法。我还添加了一个TestShapeContainer类来测试这些特性。下面是相关的代码(因为有很多代码,我会尽量把它们放在相关的地方): 抽象形状: public abstract Shape { public double

我在抽象类中遇到了这个相当奇怪(但在stackoverflow中相当常见)的问题。我试图实现这种层次结构:

抽象形状、类圆、类矩形、类正方形

圆形和矩形继承自抽象形状,正方形继承自矩形。我还创建了一个ShapeContainer类,其中包含一个ArrayList和几个方法。我还添加了一个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
类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();
  }
}
import java.util.ArrayList;
公共类形状容器
{
//性质//
私有ArrayList容器;
//建设者//
公共形状容器()
{
container=newarraylist();
}
//方法//
公共空白添加(形状s)
{
容器。添加(s);
}
公共双getArea(整数索引)
{
返回container.get(index.getArea();
}
公共int getSize()
{
返回容器.size();
}
}
我在圆、矩形和正方形中有相应的getArea和toString方法


我遗漏了什么?任何帮助都将不胜感激

您忘记了
关键字:

public abstract class Shape {
  public double getArea();

  public String toString();
}
您需要将方法定义为抽象的,如下所示:

public abstract class Shape {
  public abstract double getArea();

  public abstract String toString();
}

应该是:公共抽象类形状观察黛西·蒂我觉得我应该在课堂上做笔记heheThanks:)我想你不应该不看笔记就记住课堂上的一切:)蒂