设计一个抽象类Shape,在此基础上派生出类Rectangle和类Circle,二者都具有计算对象面积的函数getArea()以及计算对象周长的函数getPerim()。
时间: 2024-03-10 14:50:38 浏览: 67
好的,我可以帮你解答这个问题。以下是一个可能的实现方案:
```python
import math
class Shape:
def getArea(self):
pass
def getPerim(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def getArea(self):
return self.width * self.height
def getPerim(self):
return 2 * (self.width + self.height)
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getArea(self):
return math.pi * self.radius ** 2
def getPerim(self):
return 2 * math.pi * self.radius
```
定义了一个抽象类`Shape`,它包含求面积和周长的两个抽象方法。然后定义了一个矩形类`Rectangle`和一个圆类`Circle`,它们都继承自`Shape`类,并且实现了求面积和周长的方法。
在`Rectangle`类中,我们定义了矩形的宽和高,然后实现了求面积和周长的方法。在`Circle`类中,我们定义了圆的半径,然后同样实现了求面积和周长的方法,使用了Python内置的数学库`math`中的常量和函数。
这样,你就可以分别创建矩形和圆的对象,并调用它们的求面积和周长的方法了。例如:
```python
rectangle = Rectangle(3, 4)
circle = Circle(5)
print(rectangle.getArea(), rectangle.getPerim())
print(circle.getArea(), circle.getPerim())
```
输出结果为:
```
12 14
78.53981633974483 31.41592653589793
```
希望能够帮到你!
阅读全文