编写球体类 长方体类 圆柱体类,他们是抽象类Graphics的子类
时间: 2024-02-29 15:30:35 浏览: 163
好的,以下是对应的代码:
```python
from abc import ABC, abstractmethod
# 定义抽象类Graphics
class Graphics(ABC):
@abstractmethod
def get_area(self):
pass
# 定义球体类Sphere
class Sphere(Graphics):
def __init__(self, radius):
self.radius = radius
def get_area(self):
return 4 * 3.14 * self.radius ** 2
# 定义长方体类Cuboid
class Cuboid(Graphics):
def __init__(self, length, width, height):
self.length = length
self.width = width
self.height = height
def get_area(self):
return 2 * (self.length * self.width + self.length * self.height + self.width * self.height)
# 定义圆柱体类Cylinder
class Cylinder(Graphics):
def __init__(self, radius, height):
self.radius = radius
self.height = height
def get_area(self):
return 2 * 3.14 * self.radius * self.height + 2 * 3.14 * self.radius ** 2
```
以上代码中,抽象类`Graphics`定义了一个抽象方法`get_area()`,所有继承自`Graphics`的类都必须实现`get_area()`方法。
`Sphere`类、`Cuboid`类和`Cylinder`类分别继承自`Graphics`类,并分别实现了`get_area()`方法。每个类都有自己的构造函数用于初始化对象的属性。
阅读全文