编程训练2: (1)定义一个接口ShapeA,包括一个成员常量PI,值为3.1415926,一个方法getArea,用于计算图形的面积。定义另一个接口ShapeB,继承自接口ShapeA,有一个方法getArcLength,用于计算图形的周长。 (2)定义两个类Triangle和Circle,用于实现接口ShapeB,并重写getArea方法和getArcLength方法。 (3)定义一个测试类,定义类Triangle和Circle的对象,用于计算三角形和圆形的面积和周长。
时间: 2023-06-08 21:08:43 浏览: 348
非常好,这是一个关于Java面向对象编程的问题。以下是代码的实现:
```
interface ShapeA {
double PI = 3.1415926;
double getArea();
}
interface ShapeB extends ShapeA {
double getArcLength();
}
class Triangle implements ShapeB {
double a, b, c;
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;
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 t = new Triangle(3, 4, 5);
Circle c = new Circle(2.5);
System.out.println("Triangle area: " + t.getArea());
System.out.println("Triangle arc length: " + t.getArcLength());
System.out.println("Circle area: " + c.getArea());
System.out.println("Circle arc length: " + c.getArcLength());
}
}
```
在这个程序中,我们定义了两个接口ShapeA和ShapeB,并且让ShapeB继承自ShapeA。然后我们又定义了两个类Triangle和Circle,让它们分别实现ShapeB接口,并重写了getArea和getArcLength方法。最后在测试类中,我们创建了Triangle和Circle的对象,并计算它们的面积和周长。
阅读全文