创建一个基类Shape,包含一个area()方法。矩形、圆形和三角形类分别继承Shape类,并重写area()方法,实现计算各自图形面积的功能。通过calculate_area()函数,利用多态实现了不同几何图形面积的计算。
时间: 2024-05-10 13:17:05 浏览: 74
java用接口、多态、继承、类计算三角形和矩形周长及面积的方法
5星 · 资源好评率100%
以下是Python的实现代码:
```python
import math
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
class Triangle(Shape):
def __init__(self, base, height):
self.base = base
self.height = height
def area(self):
return 0.5 * self.base * self.height
def calculate_area(shape):
return shape.area()
rect = Rectangle(5, 6)
circle = Circle(3)
tri = Triangle(4, 8)
print("矩形面积:", calculate_area(rect))
print("圆形面积:", calculate_area(circle))
print("三角形面积:", calculate_area(tri))
```
运行结果:
```
矩形面积: 30
圆形面积: 28.274333882308138
三角形面积: 16.0
```
在上面的代码中,我们首先定义了一个基类`Shape`,它包含一个`area()`方法。然后我们定义了三个继承自`Shape`的子类:`Rectangle`、`Circle`和`Triangle`,并重写了`area()`方法,实现了计算各自图形面积的功能。
接着我们定义了一个`calculate_area()`函数,它接受一个`Shape`类型的参数,并返回对应图形的面积。这就是多态的体现,我们可以根据传入的参数不同,调用不同子类中的`area()`方法,实现了不同几何图形面积的计算。
最后,我们创建了三个实例分别代表矩形、圆形和三角形,并通过`calculate_area()`函数计算它们的面积。
阅读全文