自行定义一个Shape的子类三角形类Triangle,定义三条边,并覆盖Shape的三个方法,并增加各自的方法
时间: 2024-05-12 17:14:53 浏览: 95
设计一个Triangle类
以下是自定义的Triangle类的代码:
```python
class Triangle(Shape):
def __init__(self, a, b, c):
super().__init__()
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
def perimeter(self):
return self.a + self.b + self.c
def description(self):
return "This is a triangle with side lengths of {}, {}, and {}.".format(self.a, self.b, self.c)
def is_equilateral(self):
return self.a == self.b == self.c
def is_right(self):
sides = [self.a, self.b, self.c]
sides.sort()
return sides[0]**2 + sides[1]**2 == sides[2]**2
```
在Triangle类中,我们使用了三个变量a、b、c来表示三角形的三条边。在构造函数中,我们使用了super()来调用Shape类的构造函数,并初始化了三个变量。接下来,我们覆盖了Shape类的三个方法area()、perimeter()和description()。其中,area()方法使用海伦公式来计算三角形的面积,perimeter()方法计算三角形的周长,description()方法返回一个字符串,表示这是一个具有特定边长的三角形。另外,我们还定义了两个新方法is_equilateral()和is_right(),用于判断三角形是否为等边三角形和直角三角形。
阅读全文