java - 抽象类错误

标签 java abstract-class

我的程序有问题,我找不到思考的原因。它指向 public static void main(String[] args) 行,没有其他地方,无法弄清楚:( 尝试检查大括号,如果不小心错过了一两个,但仍然没有,它不是一个接口(interface)实现,所以我不必在实现中将抽象类的每个方法设置为公共(public)...

abstract class Shape {

private String name;

Shape(String name0) {name = name0;}

abstract double area(); 

abstract double perim();

void put() { 
    System.out.println(name + " with area " + area()+ " and perimeter " + perim());
   }
}

class Circle extends Shape{
private double r;

Circle(String name0, double inR) {
    super(name0);
    r = inR;
}

double area() {
    return (Math.sqrt(r)*Math.PI);
}

double perim() {
    return 2*(Math.PI * r);
}   
}

class Rectangle extends Shape{
private double a,b;

Rectangle(String name0, double a0, double b0) {
    super(name0);
    a=a0; b=b0;
}

double area() {
    return (a*b);
}

double perim() {
    return 2*(a+b);
}
}

}

class TestClass {
    public static void main(String args[]) {


    Shape[] figures = {new Rectangle("Rectangle", 2.0, 3.0), new Rectangle("Square", 4.0, 4.0), new Circle("Circle", 2.0)};
    for (Shape s: figures) 
            s.put();
}
}

最佳答案

在 main 方法之前有一个额外的右大括号 }。只需删除它即可。

建议:使用 IDE 进行编码确实是明智的,因为您可以轻松快速地摆脱这些编译错误。

关于java - 抽象类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850875/

相关文章:

java - Netbeans 覆盖注解

java - 是否可以要求抽象类的子类覆盖父类(super class)的继承方法?

java - 我可以在抽象类中创建一个为实例化类构造实例的方法吗?

java - 为什么我的 int[] 数组循环越界?

java - 检查java中没有时间的日期范围并使用jodatime

java - 软件测试

python-3.x - Python 设计模式 : Nested Abstract Classes

java - 如何从文本框中自动更新字符串(在 JLabel 中)?

java - 命令行 java、文件参数和管道输入

java - 从泛型类型参数(类型变量)扩展的类?