python练习使用抽象类和多态复制对象
时间: 2024-10-02 22:04:16 浏览: 88
在Python中,抽象类是一种特殊的类,它不能被实例化,而是用作其他类的基类,并包含一些抽象方法,即那些没有具体实现只有名称的方法。这主要是为了强制子类提供特定的行为。抽象类通常通过`abc`模块中的`ABC`类来创建。
例如:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
# 抽象类Shape可以有多种具体的形状如Rectangle和Circle
shapes = [Rectangle(5, 7), Circle(4)]
```
在这个例子中,`Shape`是一个抽象类,`Rectangle`和`Circle`是它的子类,它们都实现了`area`方法。当你需要处理各种形状并仅关心计算面积这样的通用行为时,可以创建`Shape`类型的列表,这就是多态的应用。你可以通过这个列表来调用每个元素的`area()`方法,而不需要事先知道具体是什么形状。
阅读全文