编写一个程序,定义抽象基类Figure,由它派生出3个派生类:Triangle(三角形)、Square(矩形)、Circle(圆)。用虚函数分别计算几种图形的面积(要求:实现运行时的多态性)。
时间: 2024-12-12 19:18:37 浏览: 17
triangle-classifier:一个示例Java程序,该程序对三角形进行分类,并使用单元测试来查找程序缺陷
在Python中,你可以创建一个名为`Figure`的抽象基类,并让`Triangle`、`Square`和`Circle`作为其派生类。为了实现运行时的多态性,我们需要将计算面积的方法设为虚函数。以下是这个例子的代码:
```python
from abc import ABC, abstractmethod
class Figure(ABC):
@abstractmethod
def area(self):
pass
class Triangle(Figure):
def __init__(self, base, height):
self.base = base
self.height = height
def area(self):
return 0.5 * self.base * self.height
class Square(Figure):
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
class Circle(Figure):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
# 运行时多态示例
shapes = [Triangle(3, 4), Square(5), Circle(7)]
for shape in shapes:
print(f"The area of {shape.__class__.__name__} is {shape.area()}")
阅读全文