定义一个抽象类图形Shape类,由该派生出两个子类圆Circle类和矩形Rectangle类。Shape里声明了抽象方法area(),该方法分别在两个子类里得到实现。 程序参考运行效果图如下: 任务 任务分析: 1、定义一个抽象类Shape,在它里面创建抽象方法area()方法 2、它的子类Circle类和Rectangle类 子类Circle类: 属性: r(圆的半径),private 方法: 重写area()方法,要求在里面返回圆的面积 Rectangle类: 属性:length(长)和wide(宽),private 方法: 重写area()方法,要求在里面返回矩形的面积 3、编写主类,要求允许用户无限次通过该程序计算圆和矩形的面积,半径、矩形长度和宽度都是通过控制台由用户输入,最后输出面积值(保留2位小数位)执行结果如上图。(具体输出结果以具体设定参数为准)
时间: 2023-06-18 18:01:58 浏览: 109
以下是代码实现:
```
import java.util.Scanner;
abstract class Shape {
public abstract double area();
}
class Circle extends Shape {
private double r;
public Circle(double r) {
this.r = r;
}
public double area() {
return Math.PI * r * r;
}
}
class Rectangle extends Shape {
private double length;
private double wide;
public Rectangle(double length, double wide) {
this.length = length;
this.wide = wide;
}
public double area() {
return length * wide;
}
}
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("请选择要计算的图形:1.圆 2.矩形 3.退出");
int choice = input.nextInt();
if (choice == 1) {
System.out.println("请输入圆的半径:");
double r = input.nextDouble();
Circle circle = new Circle(r);
System.out.printf("圆的面积为:%.2f\n", circle.area());
} else if (choice == 2) {
System.out.println("请输入矩形的长度和宽度:");
double length = input.nextDouble();
double wide = input.nextDouble();
Rectangle rectangle = new Rectangle(length, wide);
System.out.printf("矩形的面积为:%.2f\n", rectangle.area());
} else if (choice == 3) {
break;
} else {
System.out.println("请输入正确的选项!");
}
}
input.close();
}
}
```
运行效果图如下:
```
请选择要计算的图形:1.圆 2.矩形 3.退出
1
请输入圆的半径:
5
圆的面积为:78.54
请选择要计算的图形:1.圆 2.矩形 3.退出
2
请输入矩形的长度和宽度:
3 4
矩形的面积为:12.00
请选择要计算的图形:1.圆 2.矩形 3.退出
4
请输入正确的选项!
请选择要计算的图形:1.圆 2.矩形 3.退出
3
```
阅读全文