本任务要求:编写一个四边形类、平行四边形类和矩形类
时间: 2024-10-28 17:03:28 浏览: 12
在面向对象编程中,我们可以创建一个通用的四边形类作为基础,并在此基础上派生出更具体的形状,如平行四边形和矩形。这里是一个简单的例子:
首先,我们定义一个`四边形`类,它包含基本的属性如长度和宽度,以及绘制边界的方法:
```python
class 四边形:
def __init__(self, 底, 高):
self.底 = 底
self.高 = 高
def area(self):
return self.底 * self.高
def perimeter(self):
return 2 * (self.底 + self.高)
def draw(self):
print("这是一个四边形,底边长{},高{}".format(self.底, self.高))
```
接着,我们创建`平行四边形`类,它是`四边形`的子类,可能添加额外的对角线特性,并重写部分方法:
```python
class 平行四边形(四边形):
def __init__(self, 底, 高):
super().__init__(底, 高)
self.diagonal = None
def set_diagonal(self, diagonal):
self.diagonal = diagonal
# 如果平行四边形的对角线长度需要特定计算,可以在这里添加新的方法
def draw(self):
super().draw()
if self.diagonal is not None:
print("对角线长度为 {}".format(self.diagonal))
```
最后,`矩形`类进一步特化了平行四边形,将底和高设置为相等,同时可能提供更精确的面积计算:
```python
class 矩形(平行四边形):
def __init__(self, 边长):
if isinstance边长, tuple or len边长 == 2:
base, height = 边长
else:
base = height = 边长
super().__init__(base, height)
def area(self):
return self.底 ** 2
# 矩形通常不需要独立的对角线方法,因为它们是特殊的平行四边形
# def calculate_diagonal(self):
# return self.底 * sqrt(2)
```
阅读全文