定义一个shape 抽象类,利用它作为基类派生出 Rectangle、Circle 等具体形状类,已知具体形状关均具有两个方法GetArea()和 GetColor(),分别用来得到形状的面积和顾色。最后编写一个测试程序对产生的类的功能进行验证。
时间: 2023-05-21 17:02:47 浏览: 238
C#抽象类与抽象方法
5星 · 资源好评率100%
好的,以下是定义一个shape抽象类,以及派生出Rectangle、Circle等具体形状类的代码:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def GetArea(self):
pass
@abstractmethod
def GetColor(self):
pass
class Rectangle(Shape):
def __init__(self, width, height, color):
self.width = width
self.height = height
self.color = color
def GetArea(self):
return self.width * self.height
def GetColor(self):
return self.color
class Circle(Shape):
def __init__(self, radius, color):
self.radius = radius
self.color = color
def GetArea(self):
return 3.14 * self.radius * self.radius
def GetColor(self):
return self.color
# 测试程序
rect = Rectangle(5, 10, "red")
print("Rectangle area:", rect.GetArea())
print("Rectangle color:", rect.GetColor())
circle = Circle(3, "blue")
print("Circle area:", circle.GetArea())
print("Circle color:", circle.GetColor())
```
这个程序定义了一个抽象类Shape,其中包含了两个抽象方法GetArea和GetColor。然后,我们派生出了Rectangle和Circle两个具体形状类,它们都实现了Shape类中的两个抽象方法。最后,我们编写了一个测试程序,用来验证Rectangle和Circle类的功能是否正确。
阅读全文