java接口类作业,为啥接口下面每一行的public class都会报错

package exercise;

public interface Shape{
    final double pi=3.14159;
    double area(double r, double a, double b, double c);
    double perimeter(double a, double b, double c, double r);
}
public class Rectangle implements Shape{
     public double area(double r, double a, double b, double c) {
         double area=a*b;
         return area;
     }
     public double perimeter(double a, double b, double c, double r) {
         double perimeter=a*2+b*2;
         return perimeter;
     }
}
public class Circle implements Shape{
     public double area(double r, double a, double b, double c) {
         double area=pi*r*r;
         return area;
     }
     public double perimeter(double a, double b, double c, double r) {
         double perimeter=2*pi*r;
         return perimeter;
     }
}
public class Triangle implements Shape{
     public double area(double r, double a, double b, double c) {
         double s=(a+b+c)/2;
         double area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
         return area;
     }
     public double perimeter(double a, double b, double c, double r) {
         double perimeter=a+b+c;
         return perimeter;
     }
}

将public 的class提到一个新的文件里边

或者  public修饰符去掉(不报错)

 

(一个文件只能有一个public的类)

假设你这个文件的文件名是Shape.java, 那么只保留 public class Shape 是public修饰,其他的public都去掉即可。