- 纯虚函数:虚函数只有声明,函数体=0,就是一个纯虚函数,纯虚函数没有函数体,不需要实现。在子类里实现纯虚函数的具体功能。
- 抽象基类:拥有纯虚函数的类叫做抽象类,抽象类只能作为基类,不能构建对象。因为抽象内的纯虚函数没有函数体。
- 抽象类提供了不同种的子类对象的一个通用接口。
- 子类必须实现抽象基类中所有的纯虚函数,因为如果子类不实现所有纯虚函数,那么该子类依然是一个抽象类,没有办法实例化。(换一种说法:纯虚函数被定义在派生类中,如果派生类不重写基类的纯虚函数,则派生类也是一个抽象类。)
Python实现
对于Python而言,要想使用抽象基类可以使用abc模块。
from abc import ABCMeta, abstractmethod
class IStream(metaclass=ABCMeta):
@abstractmethod
def read(self, maxbytes=-1):
pass