有一个图形(Shape)抽象类,包含计算面积(calculateArea)方法。然后创建圆形(Circle)、矩形(Rectangle)和三角形(Triangle)类继承图形类并实现计算面积的方法。在主方法中创建不同图形的对象,并调用计算面积的方法。
时间: 2024-12-12 07:32:03 浏览: 8
area_calculator:计算圆形,正方形,矩形和三角形的面积
5星 · 资源好评率100%
这是一个典型的面向对象编程(OOP)设计模式,利用了多态的概念。首先,我们有`Shape`抽象类作为父类,它定义了一个通用的`calculateArea()`方法,但是这个方法的具体实现并未给出,因为它是一个抽象方法。接着,`Circle`、`Rectangle`和`Triangle`这三个具体的形状类都从`Shape`类继承,并各自实现了`calculateArea()`方法,提供各自的计算公式。
例如:
```java
abstract class Shape {
abstract double calculateArea();
}
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double calculateArea() {
return Math.PI * radius * radius;
}
}
class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double calculateArea() {
return width * height;
}
}
class Triangle extends Shape {
private double base, height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
double calculateArea() {
return 0.5 * base * height;
}
}
public class Main {
public static void main(String[] args) {
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
Shape triangle = new Triangle(3, 7);
System.out.println("Circle area: " + circle.calculateArea());
System.out.println("Rectangle area: " + rectangle.calculateArea());
System.out.println("Triangle area: " + triangle.calculateArea());
}
}
```
在这个例子中,虽然所有实例都是`Shape`类型的引用,但实际上调用的是每个具体类(如`Circle`, `Rectangle`, 或`Triangle`) 自己的`calculateArea()`方法,这就是多态的应用。
阅读全文