C 中抽象類和介面的區別

2021-04-12 13:00:29 字數 502 閱讀 8781

首先抽象類中有抽象成員和非抽象成員(和普通類成員一樣),而介面的所有成員都必須在實現介面的**類中實現。

抽象類可以有自己的字段,但是介面不能有自己的字段,建構函式,析造函式,靜態成員或常量。

從用途上來說,抽象類主要是提供為物件系列的基類,共享一些主要特性,使繼承於乙個抽象類的物件都具有乙個共同的目的或者結構。(所以我們可以把抽象類看成是對物件的乙個特性)。介面主要是為一批類提供一些相同,而有必須實現的任務。實現同乙個介面的一批類,就會強制的實現一些必須實現的介面成員,使編寫更規範。(所以我們可以把介面看成是對類的乙個特性)。

舉乙個例子來看:

膝上電腦和台式電腦都可以由乙個抽象類來派生,這個抽象類具有電腦的某些特性,比如記憶體的型號,大小,電源要求等。這些特性是和具體的物件有關,我們需要從電腦來派生出我們自己的膝上電腦和台式電腦類。但是無論是什麼電腦他們都會有些相同的目的,比如編寫程式,拽寫文件,打遊戲等。我們可以為這些派生的類指定乙個介面,以便他們都能實現這些相同目的的功能,例如遊戲功能igameinte***ce.

c 中抽象類和介面的區別

一 概念 抽象類 顧名思義,抽象類首先是對類進行抽象的。而類是對物件進行抽象的 當設計乙個新的抽象類時,一定是用來繼承的,定義乙個抽象類,但不用來繼承就失去了它的意義了。具體類不是用來繼承的,只有抽象類是用來繼承的。比如 貓,狗,牛,羊,是具體的類,此時可以把這些類的一些共性抽象出乙個動物類,這個動...

C 中抽象類和介面的區別

一 抽象類 抽象類是特殊的類,只是不能被例項化 除此以外,具有類的其他特性 重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能宣告於抽象類中,且不包含任何實現,派生類必須覆蓋它們。另外,抽象類可以派生自乙個抽象類,可以覆蓋基類的抽象方法也可以不覆蓋,如果不覆蓋,則其派生類必須覆蓋它們。...

C 中抽象類和介面的區別

大家都容易把這兩者搞混,我也一樣,在聽李建忠老師的設計模式時,他也老把抽象類說成介面,弄的我就更糊塗了,所以找了些網上的資料.一 抽象類 抽象類是特殊的類,只是不能被例項化 除此以外,具有類的其他特性 重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能宣告於抽象類中,且不包含任何實現,...