Shape类派生了Circle类和Rectangle类,请阅读主函数代码,完成Shape类、Circle类、Rectangle类的定义
时间: 2024-05-09 09:20:20 浏览: 64
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
```python
class Shape:
def __init__(self, color):
self.color = color
def get_color(self):
return self.color
def get_area(self):
pass
class Circle(Shape):
def __init__(self, color, radius):
super().__init__(color)
self.radius = radius
def get_area(self):
return 3.14 * self.radius ** 2
class Rectangle(Shape):
def __init__(self, color, width, height):
super().__init__(color)
self.width = width
self.height = height
def get_area(self):
return self.width * self.height
if __name__ == '__main__':
c = Circle('red', 5)
print(c.get_color())
print(c.get_area())
r = Rectangle('blue', 3, 4)
print(r.get_color())
print(r.get_area())
```
解释:
- Shape类是所有形状的基类,包含颜色属性和获取颜色的方法,但获取面积的方法需要在派生类中实现,因此这里只有一个空的get_area方法。
- Circle类继承自Shape类,包含半径属性和重写的get_area方法,计算圆的面积。
- Rectangle类继承自Shape类,包含宽和高属性和重写的get_area方法,计算矩形的面积。
- 主函数中创建了一个Circle对象和一个Rectangle对象,并分别输出颜色和面积。
阅读全文