请编写一个基类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()。完整版
时间: 2024-02-21 21:57:15 浏览: 78
好的,以下是完整的代码:
```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,它包含两个抽象方法getArea和getPerim,这两个方法在子类中必须被重写实现。
然后我们定义了两个派生类Rectangle和Circle,它们都继承自Shape类,并实现了getArea和getPerim方法以计算矩形和圆的面积和周长。
在Rectangle类中,我们使用了构造函数来初始化矩形的宽度和高度,并在getArea和getPerim方法中使用这些值进行计算。
在Circle类中,我们使用了构造函数来初始化圆的半径,并在getArea和getPerim方法中使用math库中的pi常量和半径进行计算。
阅读全文