python定义一个shape类,包含计算表面积barea和体积vol的抽象方法。然后定义扩展子类, (1)圆柱体(Cylinder),包含私有属性半径radius和height,有一个参数的构造方法
时间: 2023-06-10 11:04:17 浏览: 341
,重写父类的抽象方法,实现计算圆柱体表面积和体积的功能。 (2)立方体(Cube),包含私有属性边长length,有一个参数的构造方法,重写父类的抽象方法,实现计算立方体表面积和体积的功能。
下面是 Python 代码实现:
```python
from abc import ABC, abstractmethod
import math
class Shape(ABC):
@abstractmethod
def barea(self):
pass
@abstractmethod
def vol(self):
pass
class Cylinder(Shape):
def __init__(self, radius, height):
self.__radius = radius
self.__height = height
def barea(self):
return 2 * math.pi * self.__radius * self.__height
def vol(self):
return math.pi * self.__radius ** 2 * self.__height
class Cube(Shape):
def __init__(self, length):
self.__length = length
def barea(self):
return 6 * self.__length ** 2
def vol(self):
return self.__length ** 3
# 测试
cylinder = Cylinder(4, 6)
print("圆柱体表面积为:", cylinder.barea())
print("圆柱体体积为:", cylinder.vol())
cube = Cube(5)
print("立方体表面积为:", cube.barea())
print("立方体体积为:", cube.vol())
```
请注意,这只是一个简单的例子,实际使用时可能需要适当调整细节上的问题。
阅读全文