定义一个圆类Circle,该类能根据圆的半径计算圆的面积和周长,同时也提供了修改半径和获取半径值的方法。再定义一个接口G3D,接口中定义一个求三维图形体积的方法getVolume()。然后定义一个圆锥CircularCone类,它是圆类Circle 的子类同时是G3D的实现类,它能根据底圆面积计算圆锥的体积。编写测试类,在类通过接口G3D回调对象,输出半径为10,高为15的圆锥的体积。
时间: 2024-03-01 12:54:48 浏览: 113
好的,以下是实现代码:
```java
// 圆类 Circle
class Circle {
private double radius; // 圆的半径
// 构造方法
public Circle(double radius) {
this.radius = radius;
}
// 计算圆的面积
public double getArea() {
return Math.PI * radius * radius;
}
// 计算圆的周长
public double getPerimeter() {
return 2 * Math.PI * radius;
}
// 修改半径
public void setRadius(double radius) {
this.radius = radius;
}
// 获取半径
public double getRadius() {
return radius;
}
}
// 三维图形接口 G3D
interface G3D {
double getVolume(); // 求三维图形体积的方法
}
// 圆锥类 CircularCone
class CircularCone extends Circle implements G3D {
private double height; // 圆锥的高
// 构造方法
public CircularCone(double radius, double height) {
super(radius);
this.height = height;
}
// 实现 G3D 接口的方法
public double getVolume() {
return super.getArea() * height / 3; // 圆锥体积公式
}
}
// 测试类 Test
public class Test {
public static void main(String[] args) {
CircularCone cone = new CircularCone(10, 15);
G3D g3d = cone; // 向上转型为 G3D 接口类型
System.out.println("圆锥的体积是:" + g3d.getVolume());
}
}
```
输出结果为:
```
圆锥的体积是:1570.7963267948967
```
注意,我们在测试类中使用了向上转型将 Circle 的子类 CircularCone 转换为 G3D 接口类型,这样就可以调用 G3D 接口中定义的方法了。
阅读全文