在形状类Shape的基础之上,编写两个派生类长方类Rectangle和圆类Circle,对基类Shape类中的Area( )纯虚函数重新实现,长方的面积是长乘宽,圆的面积是π半径平方,在主函数中种类随机地创建100个形状,计算这100个形状面积的和
时间: 2024-03-10 13:46:10 浏览: 51
矩形类及派生类,算面积、体积
好的,以下是一个实现您要求的代码:
```python
import random
import math
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * (self.radius ** 2)
shapes = []
total_area = 0
for i in range(100):
shape_type = random.randint(1, 2)
if shape_type == 1:
# 随机创建长方形
length = random.randint(1, 10)
width = random.randint(1, 10)
shape = Rectangle(length, width)
else:
# 随机创建圆形
radius = random.randint(1, 10)
shape = Circle(radius)
shapes.append(shape)
total_area += shape.area()
print("100个形状的总面积为:", total_area)
```
在这个代码中,我们定义了一个基类 `Shape`,其中有一个纯虚函数 `area()`。我们还定义了两个派生类 `Rectangle` 和 `Circle`。这两个类都重写了基类的 `area()` 方法以计算它们各自的面积。在主函数中,我们随机创建了100个形状,并计算它们的总面积。
阅读全文