抽象基类和纯虚函数
- 純虛函數:虛函數只有聲明,函數體=0,就是一個純虛函數,純虛函數沒有函數體,不需要實現。在子類里實現純虛函數的具體功能。
- 抽象基類:擁有純虛函數的類叫做抽象類,抽象類只能作為基類,不能構建對象。因為抽象內的純虛函數沒有函數體。
- 抽象類提供了不同種的子類對象的一個通用接口。
- 子類必須實現抽象基類中所有的純虛函數,因為如果子類不實現所有純虛函數,那么該子類依然是一個抽象類,沒有辦法實例化。(換一種說法:純虛函數被定義在派生類中,如果派生類不重寫基類的純虛函數,則派生類也是一個抽象類。)
Python實現
對于Python而言,要想使用抽象基類可以使用abc模塊。
from abc import ABCMeta, abstractmethodclass IStream(metaclass=ABCMeta):@abstractmethoddef read(self, maxbytes=-1):pass總結
- 上一篇: LeetCode215:数组中第K个最大
- 下一篇: 如何对batch的数据求Gram矩阵