java继承和多态之对象组合之求圆柱体积
时间: 2024-11-07 09:19:35 浏览: 14
在Java中,通过继承和多态结合对象组合的方式,可以创建一个通用的几何形状类如Shape,然后定义一个更具体的子类如Cylinder(圆柱体),来计算圆柱体的体积。下面是一个简单的示例:
```java
// 定义一个基础Shape类
class Shape {
abstract double getVolume(); // 抽象方法,用于计算体积
}
// 圆柱体Cylinder继承自Shape,并实现getVolume方法
class Cylinder extends Shape {
private double radius;
private double height;
public Cylinder(double radius, double height) {
this.radius = radius;
this.height = height;
}
@Override
public double getVolume() {
return Math.PI * radius * radius * height; // 圆柱体积公式
}
}
// 主程序中对象组合并求体积
public class Main {
public static void main(String[] args) {
Shape cylinder = new Cylinder(5, 10); // 创建圆柱体对象
double volume = cylinder.getVolume(); // 调用多态下的getVolume方法
System.out.println("Cylinder volume: " + volume);
}
}
```
在这个例子中,`Main`类中的`cylinder`变量虽然是`Shape`类型的引用,但实际上它指向的是一个`Cylinder`对象。由于`Cylinder`实现了`Shape`的`getVolume`方法,所以当我们调用`cylinder.getVolume()`时,会运行`Cylinder`的实现,得到正确的圆柱体积。
阅读全文