定义抽象类Shape,包含getArea( )和getPerimeter( )两个抽象方法 (1)定义Rectangle类表示矩形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。 (2)定义Square类表示正方形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。 (3)编写测试程序:随机生成10个边长小于100的Rectangle或Square的随机对象,分别输出所有图形的面积之和与周长之和。
时间: 2024-03-25 14:39:52 浏览: 12
好的,下面是Python实现:
```python
import random
# 定义抽象类Shape
class Shape:
def getArea(self):
pass
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)
# 主程序
total_area = 0
total_perimeter = 0
for i in range(10):
rand = random.randint(0, 1)
if rand == 0:
width = random.randint(1, 99)
height = random.randint(1, 99)
shape = Rectangle(width, height)
else:
side = random.randint(1, 99)
shape = Square(side)
total_area += shape.getArea()
total_perimeter += shape.getPerimeter()
print("所有图形的面积之和为:", total_area)
print("所有图形的周长之和为:", total_perimeter)
```
这里使用了继承来实现Rectangle和Square类,它们都继承了Shape类并实现了其中的抽象方法。主程序中随机生成10个矩形或正方形对象,计算它们的面积和周长之和并输出。