我的程序出了问题,我找不到想法的原因。它指向其他任何地方的public static void main(String[] args)
线,无法弄明白:(
尝试检查大括号,如果偶然我错过了一两个但仍然没有,它不是一个接口实现,所以我不必在实现中将抽象类的每个方法都设置为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();
}
}
答案 0 :(得分:1)
在main方法之前你有一个额外的右括号}
。只需删除它。
建议:使用IDE进行编码是非常明智的,因为您可以轻松快速地摆脱这些编译错误。