创建一个基类Shape,基类中含有图形的基本性质,并包含一个计算面积的方法。以Shape为基类创建矩形和圆两个子类,找到基类与子类差异在哪里,在子类中写相应的变动。
时间: 2024-02-09 22:12:35 浏览: 83
好的,我理解了你的问题。以下是示例代码:
```python
# 定义 Shape 基类
class Shape:
def __init__(self, color):
self.color = color
def area(self):
pass
# 定义 Rectangle 子类
class Rectangle(Shape):
def __init__(self, color, width, height):
super().__init__(color)
self.width = width
self.height = height
# 重写 Shape 中的 area 方法
def area(self):
return self.width * self.height
# 定义 Circle 子类
class Circle(Shape):
def __init__(self, color, radius):
super().__init__(color)
self.radius = radius
# 重写 Shape 中的 area 方法
def area(self):
return 3.14 * self.radius ** 2
```
在这个示例中,我们定义了一个基类 Shape,它包含了图形的基本性质,比如颜色,并且定义了一个计算面积的方法 area,但是这个方法没有实际的实现,因为不同的图形计算面积的方法是不同的。
然后我们定义了两个子类 Rectangle 和 Circle,它们分别继承自 Shape,并重写了 Shape 中的 area 方法,实现了自己的计算面积的方法。
在 Rectangle 子类中,我们增加了 width 和 height 两个属性,用于计算矩形的面积。在 Circle 子类中,我们增加了 radius 属性,用于计算圆形的面积。
总结来说,基类 Shape 定义了图形的一些基本性质和方法,而子类 Rectangle 和 Circle 继承了这些基本性质和方法,并在此基础上增加了自己的属性和方法,实现了对不同图形的特定计算。这种面向对象的编程方式,可以让我们更好地组织代码,实现代码的复用和扩展。
阅读全文