定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数。 定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 设计一个show函数,对Shape类的变量,输出周长、面积。
时间: 2024-03-03 16:50:11 浏览: 140
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
好的,以下是代码实现:
```python
class Shape:
def __init__(self):
pass
def getPerimeter(self):
pass
def getArea(self):
pass
def show(self):
print("周长:", self.getPerimeter())
print("面积:", self.getArea())
class Square(Shape):
def __init__(self, side):
self.side = side
def getPerimeter(self):
return 4 * self.side
def getArea(self):
return self.side ** 2
class Rectangle(Square):
def __init__(self, length, width):
super().__init__(length)
self.width = width
def getPerimeter(self):
return 2 * (self.width + self.side)
def getArea(self):
return self.side * self.width
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getPerimeter(self):
return 2 * 3.14 * self.radius
def getArea(self):
return 3.14 * (self.radius ** 2)
```
测试代码如下:
```python
s = Square(5)
s.show()
r = Rectangle(4, 6)
r.show()
c = Circle(3)
c.show()
```
输出结果如下:
```
周长: 20
面积: 25
周长: 20
面积: 24
周长: 18.84
面积: 28.26
```
阅读全文