.定义一个主类:创建一个Circle类对象circle,radius为2,创建一个Cone类对象cirular,圆circle作为底,高为2;输出circular的体积,改变高的值为4;重新输出它的体积。Java
时间: 2024-10-18 17:10:22 浏览: 48
首先,你需要理解Java中如何使用多态来处理这种涉及不同形状(如Circle和Cone)的对象。在这种场景下,我们可以定义一个通用的Shape接口,并让Circle和Cone都实现它。然后,你可以通过Shape类型的引用来操作它们。
```java
// 定义Shape接口
interface Shape {
double getVolume();
}
// 圆形Circle类
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getVolume() {
return Math.PI * radius * radius;
}
}
// 圆锥类Cone,假设其底部是一个Circle
class Cone extends Circle {
private double height;
public Cone(Circle base, double height) {
super(base.getRadius());
this.height = height;
}
@Override
public double getVolume() {
// 圆锥体积公式
return (1.0 / 3.0) * Math.PI * Math.pow(this.radius, 2) * height;
}
}
public class Main {
public static void main(String[] args) {
// 创建Circle对象
Circle circle = new Circle(2);
// 创建Cone对象,圆circle作为底,初始高度为2
Cone circular = new Cone(circle, 2);
System.out.println("Cone volume with initial height: " + circular.getVolume());
// 改变高的值为4
circular.setHeight(4);
System.out.println("Cone volume after changing height to 4: " + circular.getVolume());
}
}
```
在这个例子中,我们先创建了一个Circle对象并存储在一个Shape类型的引用里。然后,当我们将这个引用用于Cone对象时,虽然内部实际上是Circle对象,但因为Cone实现了Shape接口,所以可以安全地调用`getVolume()`方法。
阅读全文