定义抽象类Shape,包含getArea( )和getPerimeter( )两个抽象方法 (1)定义Rectangle类表示矩形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。 (2)定义Square类表示正方形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。 (3)编写测试程序:随机生成10个边长小于100的Rectangle或Square的随机对象,分别输出所有图形的面积之和与周长之和。
时间: 2024-03-04 10:49:21 浏览: 49
好的,以下是代码实现:
```python
import random
from abc import ABC, abstractmethod
# 定义抽象类Shape
class Shape(ABC):
@abstractmethod
def getArea(self):
pass
@abstractmethod
def getPerimeter(self):
pass
# 定义Rectangle类
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
def getPerimeter(self):
return 2 * (self.width + self.height)
# 定义Square类
class Square(Rectangle):
def __init__(self, side):
super().__init__(side, side)
# 测试程序
shapes = []
for i in range(10):
if random.randint(0, 1):
width = random.randint(1, 99)
height = random.randint(1, 99)
shapes.append(Rectangle(width, height))
else:
side = random.randint(1, 99)
shapes.append(Square(side))
totalArea = 0
totalPerimeter = 0
for shape in shapes:
totalArea += shape.getArea()
totalPerimeter += shape.getPerimeter()
print("所有图形的面积之和为:", totalArea)
print("所有图形的周长之和为:", totalPerimeter)
```
运行上述代码,即可得到随机生成的图形的面积之和与周长之和。
阅读全文