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