设计一个几何图形的Shape类 及其子类正方体Cube类和圆形Circle类
时间: 2024-12-17 15:13:10 浏览: 4
当设计一个几何形状的`Shape`类及其子类时,我们通常会创建一个通用的基类,然后为特定形状(如正方形和圆)定义更具特性的子类。以下是一个简化的例子:
```python
class Shape:
def __init__(self, name, sides=None):
self.name = name
self.sides = sides if sides else []
def get_name(self):
return self.name
def draw(self):
raise NotImplementedError("子类必须实现此方法")
class Cube(Shape):
def __init__(self, side_length):
super().__init__("Cube", [side_length])
self.side_length = side_length
def draw(self):
print(f"{self.name} with side length {self.side_length}")
class Circle(Shape):
def __init__(self, radius):
super().__init__("Circle")
self.radius = radius
@property
def circumference(self):
return 2 * 3.14159 * self.radius # 圆周长的近似值
def draw(self):
print(f"{self.name} with radius {self.radius}")
# 使用示例
cube = Cube(5)
cube.draw() # 输出: Cube with side length 5
circle = Circle(7)
circle.draw() # 输出: Circle with radius 7
print(circle.circumference) # 输出: 圆的周长大约是 43.982
```
在这个例子中,`Shape`是一个抽象基类,它有名字和边数属性(对于立方体而言),以及一个`draw`方法,这是一个抽象方法,因为它没有具体实现。`Cube`和`Circle`继承自`Shape`,分别实现了自己的`draw`方法,`Cube`还添加了`side_length`属性。
阅读全文