複製鏈接
請複製以下鏈接發送給好友

抽象基類

鎖定
抽象類(abstract base class,ABC)就是類裏定義了純虛成員函數的類。純虛函數一般只提供了接口,並不會做具體實現(雖然可以),實現由它的派生類去重寫。抽象類不能被實例化(不能創建對象),通常是作為基類供子類繼承,子類中重寫虛函數,實現具體的接口。簡言之,ABC描述的是至少使用一個純虛函數的接口,從ABC派生出的類將根據派生類的具體特徵,使用常規虛函數來實現這種接口。
中文名
抽象基類
外文名
abstract base class,ABC
簡    稱
ABC
定義了
純虛成員函數的類

目錄

抽象基類定義

抽象基類的理念:在處理繼承的問題上,ABC方法更系統性,更規範。設計ABC之前,應先開發一個模型—指出編程問題所需的類以及它們之間的相互關係。一種學院派思想認為,如果要設計類繼承層次,則只能將那些不會被用作基類的類設計為具體的類。這種設計方法更清晰,複雜度低。

抽象基類特點作用

抽象類只能作為基類來使用.抽象基類必須至少使用一個純虛函數接口。(純虛函數可以在抽象類中定義)抽象基類不能創建對象實例.只能當基類被其它類繼承。原型中使用=0指出類是一個抽象基類,在類中可以不定義該函數。抽象類只能作為基類來使用,其純虛函數的實現由派生類給出。如果派生類沒有重新定義純虛函數,而派生類只是繼承基類的純虛函數,則這個派生類仍然還是一個抽象類。如果派生類中給出了基類純虛函數的實現,則該派生類就不再是抽象類了,它是一個可以建立對象的具體類了.基類的純虛函數必須有“=0”,但不一定沒有函數的實現,只是不能直接內嵌在類中.抽象基類的作用:在處理繼承問題上,更系統,更規範,如果要設計類?
定義抽象基類是為了給子類繼承實現具體的功能,它是”殘缺的類“,裏面沒有抽象方法的具體代碼,裏面的抽象方法是被子類重寫的!