6-4 设计一个Triangle类继承自GeometricObject类
时间: 2024-10-17 08:16:02 浏览: 62
西南科技大学Java程序设计与实践 实验三 类的继承与多态的应用
5星 · 资源好评率100%
在设计一个简单的面向对象模型中,我们可以创建一个Triangle类,它继承自一个更通用的GeometricObject类。这样的设计允许我们复用GeometricObject类中的属性和方法,同时为三角形这个特定形状添加特有的功能。这里是一个基本的Python示例:
```python
class GeometricObject:
def __init__(self, name):
self.name = name
def get_area(self):
pass # 这里需要子类去实现具体的计算面积的方法
def perimeter(self, side1, side2, side3):
return side1 + side2 + side3
class Triangle(GeometricObject):
def __init__(self, name, side1, side2, side3):
super().__init__(name)
self.side1 = side1
self.side2 = side2
self.side3 = side3
def area(self): # 重写父类的方法,计算三角形的面积
s = (self.side1 + self.side2 + self.side3) / 2
return sqrt(s * (s - self.side1) * (s - self.side2) * (s - self.side3))
def is_valid_triangle(self): # 新增方法检查三边是否构成有效三角形
if self.side1 + self.side2 > self.side3 and \
self.side1 + self.side3 > self.side2 and \
self.side2 + self.side3 > self.side1:
return True
else:
return False
# 使用示例
triangle = Triangle("Right triangle", 3, 4, 5)
print(f"{triangle.name}的面积: {triangle.area()}")
print(f"三角形是否有效: {triangle.is_valid_triangle()}")
```
在这个例子中,`Triangle`类继承了`GeometricObject`的`get_area`方法,并新增了`area`和`is_valid_triangle`方法。
阅读全文