定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写应用程序使用Rectang...
时间: 2024-02-26 09:57:58 浏览: 33
好的,这是一个经典的面向对象编程问题,我会根据你的要求进行回答。以下是答案:
```python
# 定义抽象类Shape
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类
import math
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getArea(self):
return math.pi * self.radius ** 2
# 应用程序
if __name__ == '__main__':
# 创建Rectangle对象
rectangle = Rectangle(5, 10)
# 计算Rectangle的面积
print(rectangle.getArea()) # 输出50
# 创建Circle对象
circle = Circle(5)
# 计算Circle的面积
print(circle.getArea()) # 输出78.53981633974483
```
在上面的代码中,我首先定义了一个抽象类Shape,其中包含一个抽象方法getArea()。接下来,我派生出了Rectangle和Circle类,并实现了它们的getArea()方法。最后,我在应用程序中创建Rectangle和Circle对象,并调用它们的getArea()方法计算面积。
希望我的回答能够帮到你!如果你还有其他问题,可以继续提出。
阅读全文