java中用抽象类计算圆柱体、长方体、三棱柱的体积代码
时间: 2024-12-12 11:16:54 浏览: 18
在 Java 中,我们可以创建一个抽象类作为基础,然后让每个几何体(比如圆柱体、长方体、三棱柱)继承这个抽象类,并重写计算体积的方法。这里是一个简单的例子:
```java
// 定义一个抽象基类 VolumeCalculator
abstract class VolumeCalculator {
protected double dimensions[]; // 共享的维度数组
public abstract double calculateVolume(); // 抽象方法,每个子类需要实现
// 构造函数接受所有几何体共有的维度
public VolumeCalculator(double... dimensions) {
this.dimensions = dimensions;
}
// 计算面积的通用方法(这里假设我们只关心三维物体的体积)
protected double calculateBaseArea() {
// 这里可以根据实际形状进行计算,例如对于长方体,可能是两个对应边长的乘积
return dimensions[0] * dimensions[1];
}
}
// 圆柱体类,继承自VolumeCalculator并实现calculateVolume方法
class Cylinder extends VolumeCalculator {
private double height;
public Cylinder(double radius, double height) {
super(radius, height);
this.height = height;
}
@Override
public double calculateVolume() {
return Math.PI * Math.pow(dimensions[0], 2) * dimensions[1]; // 直径转半径
}
}
// 长方体类,同样继承并实现
class Cuboid extends VolumeCalculator {
public Cuboid(double length, double width, double height) {
super(length, width, height);
}
@Override
public double calculateVolume() {
return dimensions[0] * dimensions[1] * dimensions[2];
}
}
// 三棱柱类(这里简化为有底面的直棱柱)
class Prism extends VolumeCalculator {
private double baseArea;
public Prism(double sideLength, double height) {
super(sideLength, sideLength, height); // 底面尺寸
this.baseArea = calculateBaseArea();
}
@Override
public double calculateVolume() {
return baseArea * dimensions[2];
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Cylinder cylinder = new Cylinder(5, 8);
System.out.println("Cylinder volume: " + cylinder.calculateVolume());
Cuboid cuboid = new Cuboid(4, 6, 9);
System.out.println("Cuboid volume: " + cuboid.calculateVolume());
Prism prism = new Prism(3, 7);
System.out.println("Prism volume: " + prism.calculateVolume());
}
}
```
阅读全文
相关推荐

















