1. 定义名为VolumeArea的抽象类,在其中定义圆周率PI的值为3.14159,并定义两个抽象方法volume(double r)和area(double r),它们的返回值类型均为float。再定义以类VolumeArea为父类的子类VolumeAndArea,在该子类中实现父类中的抽象方法:方法volume(double r) 的功能是求半径为r的球的体积(公式为:4*PI*r^3/3);方法area(double r)的功能是求半径为r的圆的面积(公式为:?PI*r2)。请编写一个测试类TestVolumeArea,在其主方法中定义一个VolumeAndArea类的对象x,通过对象x求半径为r(r值由键盘输入)的球的体积及该球最大切面的圆的面积,并输出计算结果。
时间: 2024-03-21 20:42:40 浏览: 62
VolumeArea.java
```
public abstract class VolumeArea {
protected final double PI = 3.14159;
public abstract float volume(double r);
public abstract float area(double r);
}
```
VolumeAndArea.java
```
public class VolumeAndArea extends VolumeArea {
@Override
public float volume(double r) {
return (float)(4 * PI * r * r * r / 3);
}
@Override
public float area(double r) {
return (float)(PI * r * r);
}
}
```
TestVolumeArea.java
```
import java.util.Scanner;
public class TestVolumeArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入半径 r:");
double r = scanner.nextDouble();
VolumeAndArea x = new VolumeAndArea();
float v = x.volume(r);
float a = x.area(r);
System.out.println("半径为 " + r + " 的球的体积为:" + v);
System.out.println("该球最大切面的圆的面积为:" + a);
}
}
```
阅读全文