C 為什麼設計抽象類?

2021-09-12 18:20:38 字數 700 閱讀 4487

網上也有許多介紹,但我總覺得不能一針見血,根據自己工作實際中用到的,才知道有些時候真的是需要抽象類

先說一種場景:

a設計了一項功能他把此功能封裝成乙個類,以類的方式提供,他要把這項功能提供給b、c,我們理所當然的想到他會把原始碼或者編譯成的

庫+**件給bc。

現在在修改一下這個場景:如果 abc做的是同乙個專案,為了保證**不重,方便維護。這樣就不能再使用上面的方法了,只能將標頭檔案提供

給bc,而且這個標頭檔案要做成乙個抽象類,這樣bc才能編譯通過,或者還有一種方法,將.h+導入庫提供給bc。但哪種方法更好一目了解。

為什麼只用提供乙個抽象類(.**件)就可以了呢?

抽象類的最大特點就是有純虛函式,純虛函式的意義就是你可以把它當做乙個已經有實現了的函式,而不只是乙個函式宣告。這樣,bc在自

己的模組中就可以使用這個純虛類來進行編譯而不會報錯(對!只需要包含這個抽象類的.**件,不需要什麼cpp檔案),但如果是乙個普通

類,如果我們只包含了它的宣告,那麼在編譯的時候肯定會報錯,因為編譯器會認為你忘記實現。而抽象類由於不能自己例項化,只能做指引

或者引用,所以編譯器會認為你在使用的時候一定是引用了外部已經實現了的子類,所以不會報錯。

也就是說如果沒有抽象類,我們無法將別人提供的介面拿來編譯,只能將別人的原始碼或者庫都拿來。

這也就是大家所說的介面與實現分離。

抽象類定義 為什麼要使用抽象類

為什麼要使用抽象類?有什麼好處?答案 1 現實中一些父類中的方法沒必要寫 各個子類中的方法會有所不同 所以沒必要在父類中寫 2 看被人 時候會注意這是抽象方法 會有個提示作用 3 當看到乙個類是抽象的,要關心他的抽象方法,因為他的子類一定會重寫他,然後去找抽象類的引用,會有多型性的體現 4 物件導向...

為什麼使用抽象類,什麼時候使用抽象類

假設有2個類,乙個類是主力球員,乙個類是替補球員。public class normalplayerpublic string firstnamepublic string lastnamepublic decimal weeksalarypublic string getfullname publ...

為什麼要用抽象類Abstract

這個問題我一直沒有在意,但是知其然最好知其所以然。我想用比較通俗的方法告訴你 假如有兩個程式設計師,兩個在兩個程式裡都要用到一種功能,比如要取乙個物件名。甲自己做了乙個方法叫getname,乙也作了乙個方法叫qumingzi。如果兩個人要去看對方的程式,那麼這個方法要讀懂是不是要有乙個過程?如果在公...