#5. 已知具体形状类均具有两个方法GetArea()和GetColor(), # 定义一个shape类,利用它作为基类派生出Rectangle、Circle等 # 具体形状类,分别用来得到形状的面积和颜色。最后编写一个测试程 # 序对产生的类的类的功能进行验证。
时间: 2024-02-25 22:55:01 浏览: 144
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
好的,这是一个关于面向对象编程的问题。下面是代码实现:
```python
class Shape:
def __init__(self, color):
self.color = color
def get_area(self):
pass
def get_color(self):
return self.color
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
class Circle(Shape):
def __init__(self, color, radius):
super().__init__(color)
self.radius = radius
def get_area(self):
return 3.14 * self.radius ** 2
# 测试
rectangle = Rectangle('red', 4, 5)
circle = Circle('blue', 3)
print(rectangle.get_color()) # 输出 red
print(rectangle.get_area()) # 输出 20
print(circle.get_color()) # 输出 blue
print(circle.get_area()) # 输出 28.26
```
这段代码定义了一个基类 Shape,包含了颜色属性和获取颜色的方法。派生出了具体的形状类 Rectangle 和 Circle,它们分别实现了获取面积的方法。最后,在测试部分,分别创建了一个矩形和一个圆,并分别调用了它们的方法来验证其功能。
阅读全文