用java面向对象中多态的方法,设计一个程序,可以计算圆形和长方形的面积及周长,其中定义抽象类 图形类为圆形和长方形的父类,在图形类中定义抽象方法获取面积方法和获取周长方法。定义面积和周长计算器,可以计算不同图形的面积和周长。程序要具备良好的可扩展性和可维护性。
时间: 2024-03-03 10:51:27 浏览: 81
java用接口、多态、继承、类计算三角形和矩形周长及面积的方法
5星 · 资源好评率100%
好的,我可以为您设计这样一个程序。首先,我们可以定义一个抽象类 `Shape`,其中包含计算面积和周长的抽象方法 `getArea()` 和 `getPerimeter()`。
```java
public abstract class Shape {
public abstract double getArea();
public abstract double getPerimeter();
}
```
然后,我们可以创建两个具体的类 `Rectangle` 和 `Circle`,分别表示长方形和圆。这两个类都继承自 `Shape` 类,并实现了 `getArea()` 和 `getPerimeter()` 方法。
```java
public class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double getArea() {
return length * width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
}
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return 3.14 * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * 3.14 * radius;
}
}
```
现在我们可以创建一个面积和周长计算器 `Calculator`,该计算器可以接收一个 `Shape` 对象,并调用其 `getArea()` 和 `getPerimeter()` 方法计算面积和周长。
```java
public class Calculator {
public double calculateArea(Shape shape) {
return shape.getArea();
}
public double calculatePerimeter(Shape shape) {
return shape.getPerimeter();
}
}
```
最后,我们就可以使用这些类来计算长方形和圆的面积和周长了。
```java
public class Main {
public static void main(String[] args) {
Shape rectangle = new Rectangle(5, 10);
Shape circle = new Circle(3);
Calculator calculator = new Calculator();
// 计算长方形的面积和周长
System.out.println("Rectangle area: " + calculator.calculateArea(rectangle));
System.out.println("Rectangle perimeter: " + calculator.calculatePerimeter(rectangle));
// 计算圆的面积和周长
System.out.println("Circle area: " + calculator.calculateArea(circle));
System.out.println("Circle perimeter: " + calculator.calculatePerimeter(circle));
}
}
```
输出结果如下:
```
Rectangle area: 50.0
Rectangle perimeter: 30.0
Circle area: 28.26
Circle perimeter: 18.84
```
这样,我们就成功地使用多态的方法设计了一个程序,可以计算圆形和长方形的面积及周长,并且具备良好的可扩展性和可维护性。
阅读全文