编写一个Java程序定义一个接口ShapeA,包括一个成员常量PI,值为3.1415926,一个方法getArea,用于计算图形的面积。定义另一个接口ShapeB,继承自接口ShapeA,有一个方法getArcLength,用于计算图形的周长。定义两个类Triangle和Circle,用于实现接口ShapeB,并重写getArea方法和getArcLength方法。定义一个测试类,定义类Triangle和Circle的对象,用于计算三角形和圆形的面积和周长。
时间: 2023-06-10 19:04:08 浏览: 427
很高兴回复您,下面是您要编写的Java程序:
```
// 定义 ShapeA 接口
public interface ShapeA {
double PI = 3.1415926; // 常量 PI
double getArea(); // 计算图形面积的方法
}
// 定义 ShapeB 接口,继承自 ShapeA
public interface ShapeB extends ShapeA {
double getArcLength(); // 计算图形周长的方法
}
// 定义 Triangle 类,实现 ShapeB 接口
class Triangle implements ShapeB {
private double a; // 三角形的底边长
private double b; // 三角形的高
public Triangle(double a, double b) {
this.a = a;
this.b = b;
}
@Override
public double getArea() {
return a * b / 2;
}
@Override
public double getArcLength() {
return a + b + Math.sqrt(a * a + b * b);
}
}
// 定义 Circle 类,实现 ShapeB 接口
class Circle implements ShapeB {
private double r; // 圆的半径
public Circle(double r) {
this.r = r;
}
@Override
public double getArea() {
return PI * r * r;
}
@Override
public double getArcLength() {
return 2 * PI * r;
}
}
// 定义测试类
public class Test {
public static void main(String[] args) {
ShapeB triangle = new Triangle(3, 4); // 以底和高为参数创建三角形对象
System.out.println("Triangle area: " + triangle.getArea());
System.out.println("Triangle perimeter: " + triangle.getArcLength());
ShapeB circle = new Circle(5); // 以半径为参数创建圆对象
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle perimeter: " + circle.getArcLength());
}
}
```
希望能够帮助到您,如有疑问请随时提出。
阅读全文