定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写编写应用程序使用Rectangle类和Circle类。
时间: 2023-06-10 12:04:04 浏览: 159
好的,根据您的要求,以下是一种可能的解决方案:
```python
# 定义抽象基类
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def getArea(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
# 派生出 Circle 类
from math import pi
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getArea(self):
return pi * self.radius ** 2
# 应用程序示例
r = Rectangle(3, 4)
print("矩形的面积为:", r.getArea())
c = Circle(5)
print("圆的面积为:", c.getArea())
```
以上实现中,`Shape` 类为抽象基类,其中定义了一个抽象方法 `getArea()`,需要在子类中具体实现,而 `Rectangle` 和 `Circle` 类都继承了 `Shape` 类,并分别实现了自己的 `getArea()` 方法来计算对象的面积。最后,我们在应用程序中创建了一个 `Rectangle` 对象和一个 `Circle` 对象,并调用它们的 `getArea()` 方法来计算它们的面积并打印结果。
阅读全文