创建一个基类Shape,包含一个area()方法。矩形、圆形和三角形类分别继承Shape类,并重写area()方法,实现计算各自图形面积的功能。通过calculate_area()函数,利用多态实现了不同几何图形面积的计算。
时间: 2024-04-30 09:18:19 浏览: 85
可以这样实现:
```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(4, 5)
print(calculate_area(rect)) # 20
circle = Circle(3)
print(calculate_area(circle)) # 28.274333882308138
tri = Triangle(3, 4)
print(calculate_area(tri)) # 6.0
```
在这里,我们使用了多态,通过继承自基类Shape并重写area()方法,实现了不同几何图形的面积计算。calculate_area()函数接受任何继承自Shape的对象作为参数,并调用它的area()方法计算面积。这样,我们可以方便地计算不同几何图形的面积,而不需要为每个几何图形编写一个独立的计算函数。
阅读全文