设计一个抽象类Shape,在此基础上派生出类Rectangle和类Circle,二者都具有计算对象面积的函数getArea()以及计算对象周长的函数getPerim()。
时间: 2024-03-09 20:47:28 浏览: 53
好的,我可以帮您设计这个抽象类和派生类。以下是示例代码:
```python
import math
from abc import ABC, abstractmethod
# 抽象类
class Shape(ABC):
@abstractmethod
def getArea(self):
pass
@abstractmethod
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,分别代表矩形和圆形,它们都实现了getArea()和getPerim()方法。这样,我们就可以通过调用这两个方法来计算矩形和圆形的面积和周长了。
阅读全文