自定义一个Shape类(形状),封装必要的属性和方法。自定义Rectangle(矩形类),Square类(正方形类)。根据继承的原则,Rectangle类可设为Shape类的子类,Square类为Rectangle类的子类。试编程实现各形状的面积,要求子类和父类采用构造器初始化属性值。
时间: 2024-03-02 16:51:07 浏览: 105
好的,以下是代码实现:
```python
class Shape:
def __init__(self, name):
self.name = name
def get_area(self):
pass
class Rectangle(Shape):
def __init__(self, name, width, height):
super().__init__(name)
self.width = width
self.height = height
def get_area(self):
return self.width * self.height
class Square(Rectangle):
def __init__(self, name, side_length):
super().__init__(name, side_length, side_length)
def get_area(self):
return super().get_area()
# 测试代码
rectangle = Rectangle('矩形', 4, 5)
print(rectangle.name, '面积为:', rectangle.get_area())
square = Square('正方形', 5)
print(square.name, '面积为:', square.get_area())
```
输出结果为:
```
矩形 面积为: 20
正方形 面积为: 25
```
在这个实现中,我们定义了一个`Shape`类作为所有形状的基类,包含了形状的名称属性和一个抽象的`get_area()`方法。`Rectangle`类作为`Shape`的子类,初始化时需要提供矩形的宽和高属性,同时实现了`get_area()`方法计算矩形面积。`Square`类作为`Rectangle`的子类,初始化时只需要提供正方形的边长属性,然后通过调用父类的构造函数来初始化宽和高,最后实现了`get_area()`方法计算正方形面积。
在测试代码中,我们分别创建了一个矩形和一个正方形实例,并分别调用它们的`get_area()`方法计算面积并输出结果。
阅读全文