純接口是指滿足下面要求的類(lèi):
- 只有純虛函數(shù)和靜態(tài)函數(shù)。
【注】為保證接口類(lèi)的所有實(shí)現(xiàn)可被正確銷(xiāo)毀,必須為它聲明虛析構(gòu)函數(shù),且析構(gòu)函數(shù)不能是純虛函數(shù)。 - 沒(méi)有非靜態(tài)數(shù)據(jù)成員;
- 沒(méi)有定義任何構(gòu)造函數(shù)。如果有,則該構(gòu)造函數(shù)不含參數(shù),且為
protected; - 如果是子類(lèi),也只能繼承滿足上訴條件并以
Interface為后綴的類(lèi)。
【注】接口類(lèi)一般要求以Interface為后綴,但這不是必須的。以Interface為后綴可令他人知道不能為該接口類(lèi)增加實(shí)現(xiàn)函數(shù)或非靜態(tài)數(shù)據(jù)成員。不過(guò)隨之而來(lái)的問(wèn)題是,Interface后綴增加了類(lèi)名長(zhǎng)度,為閱讀和理解帶來(lái)不變。同時(shí),接口特性作為實(shí)現(xiàn)細(xì)節(jié)不應(yīng)該暴露給客戶。
只有在滿足上訴需要時(shí),類(lèi)才以 Interface 結(jié)尾,但反過(guò)來(lái),滿足上述需要的類(lèi)未必以 Interface 結(jié)尾。
接口類(lèi)不能被直接實(shí)例化,因?yàn)樗暶髁思兲摵瘮?shù)。