编写一个Java程序定义一个接口ShapeA,包括一个成员常量PI,值为3.1415926,一个方法getArea,用于计算图形的面积。定义另一个接口ShapeB,继承自接口ShapeA,有一个方法getArcLength,用于计算图形的周长。定义两个类Triangle和Circle,用于实现接口ShapeB,并重写getArea方法和getArcLength方法。定义一个测试类,定义类Triangle和Circle的对象,用于计算三角形和圆形的面积和周长。
时间: 2023-06-08 21:06:58 浏览: 65
您好!很高兴为您解答问题。根据您的要求,我为您编写了如下Java程序:
```java
interface ShapeA {
double PI = 3.1415926;
double getArea();
}
interface ShapeB extends ShapeA {
double getArcLength();
}
class Triangle implements ShapeB {
double a;
double b;
double c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
public double getArcLength() {
return a + b + c;
}
}
class Circle implements ShapeB {
double r;
public Circle(double r) {
this.r = r;
}
public double getArea() {
return PI * r * r;
}
public double getArcLength() {
return 2 * PI * r;
}
}
public class Test {
public static void main(String[] args) {
Triangle triangle = new Triangle(3, 4, 5);
System.out.println("Triangle area: " + triangle.getArea());
System.out.println("Triangle arc length: " + triangle.getArcLength());
Circle circle = new Circle(5);
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle arc length: " + circle.getArcLength());
}
}
```
使用以上程序,您可以实现题目要求的接口和类,并且可以在Test类中对Triangle和Circle对象进行实例化,计算它们的面积和周长。请注意,PI常量定义在ShapeA接口中,其他变量和方法都继承自该接口。ShapeB接口继承ShapeA接口,并添加了一个计算周长的方法。Triangle和Circle类实现ShapeB接口,并且重写了接口中的getArea和getArcLength方法。最后,在Test类中实例化并计算了Triangle和Circle对象的面积和周长。