定義一個等腰直角三角形派生類,以上一題為父類,輸入值為一個直角邊長,覆蓋方法為計算全部邊長。創建該類的一個對象,輸出其全部邊長、全部内角、周長和面積。
时间: 2024-09-30 18:03:50 浏览: 22
好的,我們可以定義一個名为`IsoscelesRightTriangle`的派生類,它從一个基础几何类`GeometricShape`或者`Triangle`派生而来。這個派生類將專門處理等腰直角三角形,並覆寫父類中的方法來計算邊長、內角(因為等腰直角三角形的兩個非相等角都是45度)、周長和面積。
首先,讓我們在`IsoscelesRightTriangle`類中添加必要的属性和方法:
```python
class GeometricShape:
def __init__(self):
self.side_length = None
class Triangle(GeometricShape):
def __init__(self, base):
super().__init__()
self.base = base
self.hypotenuse = None
class IsoscelesRightTriangle(Triangle):
def calculate_side_lengths(self, side):
# 等腰直角三角形两等边相等,所以base和side是相同的
self.base = side
self.hypotenuse = side * sqrt(2) # 使用sqrt计算斜边长度
return self.base, self.hypotenuse
def calculate_angles(self):
acute_angle = 45
right_angle = 90
return acute_angle, right_angle
def calculate_perimeter(self):
return self.base + self.hypotenuse * 2
def calculate_area(self):
area = (self.base ** 2) / 2
return area
# 创建等腰直角三角形对象并获取信息
triangle_obj = IsoscelesRightTriangle(5)
side_lengths = triangle_obj.calculate_side_lengths(triangle_obj.base)
angles = triangle_obj.calculate_angles()
perimeter = triangle_obj.calculate_perimeter()
area = triangle_obj.calculate_area()
print("边长:", side_lengths)
print("内角:", angles)
print("周长:", perimeter)
print("面积:", area)
```
阅读全文