设计一个继承家族的类,点类派生出圆类,以圆类为基类派生出圆柱体类和球体类。
时间: 2024-12-01 07:10:29 浏览: 30
设计这样的类结构通常涉及到创建一个通用的形状基类,比如`Shape`,然后派生出更具体的形状类如`Circle`, `Cylinder`, 和 `Sphere`。以下是简化的伪代码示例:
```python
# 定义一个基础形状类 Shape
class Shape:
def __init__(self, name):
self.name = name
# 基础属性和方法
def get_name(self):
return self.name
def area(self): # 这里只是一个占位符,实际计算面积会有所不同
raise NotImplementedError("Subclasses should implement this method.")
# 圆形类 Circle 继承自 Shape
class Circle(Shape):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
# 圆柱体类 Cylinder 继承自 Shape
class Cylinder(Shape):
def __init__(self, name, radius, height):
super().__init__(name)
self.radius = radius
self.height = height
def surface_area(self): # 圆柱体的表面积计算
base_area = 3.14 * self.radius ** 2
lateral_area = 2 * 3.14 * self.radius * self.height
return base_area + lateral_area
# 球体类 Sphere 继承自 Shape
class Sphere(Shape):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
def surface_area(self):
return 4 * 3.14 * (self.radius ** 2)
# 使用示例
cylinder = Cylinder("Cylinder", 5, 10)
circle = Circle("Circle", 3)
sphere = Sphere("Sphere", 4)
print(cylinder.get_name()) # 输出 "Cylinder"
print(circle.area()) # 计算并输出圆形面积
print(sphere.surface_area()) # 计算并输出球体表面积
```
阅读全文