定义一个类shape,及四个派生类circle,rectangle,square,triangle包含必要的属性和周长与面积的计算方法
时间: 2024-05-07 09:17:55 浏览: 164
cs代码-1.仿圆类创建长方形类(Rectangle,包括长width和宽 height)和三角 形类(Triangle,包括边长:a,b,c); 2.为以上三类添加基类:Shape类。Shape类中包含形状名称(type) 和显示面积和周长等信息的方法:Display(). 3.创建测试类(Test),在测试类Main方法中实例化圆、长方形、三角形,并计算和显示这些几何形状的面积和周长。
以下是类的定义和四个派生类的实现:
```python
class Shape:
def __init__(self):
self.name = "Shape"
def get_area(self):
pass
def get_perimeter(self):
pass
class Circle(Shape):
def __init__(self, radius):
super().__init__()
self.name = "Circle"
self.radius = radius
def get_area(self):
return 3.14 * self.radius * self.radius
def get_perimeter(self):
return 2 * 3.14 * self.radius
class Rectangle(Shape):
def __init__(self, length, width):
super().__init__()
self.name = "Rectangle"
self.length = length
self.width = width
def get_area(self):
return self.length * self.width
def get_perimeter(self):
return 2 * (self.length + self.width)
class Square(Rectangle):
def __init__(self, side):
super().__init__(side, side)
self.name = "Square"
class Triangle(Shape):
def __init__(self, a, b, c):
super().__init__()
self.name = "Triangle"
self.a = a
self.b = b
self.c = c
def get_area(self):
p = (self.a + self.b + self.c) / 2
return (p * (p - self.a) * (p - self.b) * (p - self.c)) ** 0.5
def get_perimeter(self):
return self.a + self.b + self.c
```
在上述代码中,`Shape` 类是一个基类,它包含了所有形状都共有的属性和方法;`Circle`、`Rectangle`、`Square` 和 `Triangle` 类都是基于 `Shape` 类的派生类,它们通过继承 `Shape` 类来获得共有的属性和方法,并且实现各自特有的属性和方法。
`Circle` 类包含半径属性,并且实现了计算圆的面积和周长的方法;`Rectangle` 类包含长和宽属性,并且实现了计算矩形的面积和周长的方法;`Square` 类是 `Rectangle` 类的派生类,它通过调用 `Rectangle` 类的构造函数来初始化长和宽属性,并且重写了名称属性;`Triangle` 类包含三条边的属性,并且实现了计算三角形的面积和周长的方法。
阅读全文