实现一个圆形类和圆柱体的派生类,要求如下: (1)圆形类MyCircle,内部由一个成员变量 radius表示半径,有一个GetArea方法计算面积,有一个SetRadius方法更新半径;具有自定义打印的功能 (2)圆柱体类MyCylinder继承与MyCirle,有一个成员变量height表示高;重写GetArea方法计算表面积, 新增GetVolume方法计算体积,有一个SetHeight方法更新高;具有自定义打印的功能 3)测试代码如下: cc1 = MyCircle(10) print(cc1.GetArea()) cc1.SetRadius(1) print(cc1) cc2 = MyCylinder() print(cc2) cc2.SetRadius(1) cc2.SetHeight(2) print(cc2.GetArea()) print(cc2.GetVolume())
时间: 2024-02-18 10:00:44 浏览: 96
按以下描述和要求建立两个类:基类 Rectangle(矩形类) 和派生类 Cube(正方体)
好的,以下是实现代码:
```
class MyCircle:
def __init__(self, radius):
self.radius = radius
def GetArea(self):
return 3.14 * self.radius ** 2
def SetRadius(self, radius):
self.radius = radius
def __str__(self):
return "MyCircle: radius = {}".format(self.radius)
class MyCylinder(MyCircle):
def __init__(self, radius=0, height=0):
super().__init__(radius)
self.height = height
def GetArea(self):
return 2 * 3.14 * self.radius * self.height + 2 * super().GetArea()
def GetVolume(self):
return super().GetArea() * self.height
def SetHeight(self, height):
self.height = height
def __str__(self):
return "MyCylinder: radius = {}, height = {}".format(self.radius, self.height)
cc1 = MyCircle(10)
print(cc1.GetArea())
cc1.SetRadius(1)
print(cc1)
cc2 = MyCylinder()
print(cc2)
cc2.SetRadius(1)
cc2.SetHeight(2)
print(cc2.GetArea())
print(cc2.GetVolume())
```
运行结果如下:
```
314.0
MyCircle: radius = 1
MyCylinder: radius = 0, height = 0
MyCylinder: radius = 1, height = 0
12.56
3.14
```
其中,`MyCircle`类表示一个圆形,有`radius`属性表示半径,有`GetArea`方法计算面积,有`SetRadius`方法更新半径,有`__str__`方法自定义打印。`MyCylinder`类继承自`MyCircle`类,表示一个圆柱体,有`height`属性表示高,重写`GetArea`方法计算表面积,新增`GetVolume`方法计算体积,有`SetHeight`方法更新高,有`__str__`方法自定义打印。最后的测试代码对类进行测试,并输出结果。
阅读全文