抽象類和介面異同

2021-07-09 04:22:25 字數 1036 閱讀 1784

抽象類

定義:

抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。

用 abstract 修飾的類是抽象類,抽象類是不完整的,它只能用作基類。在物件導向方法中,抽象類主要用來進行型別隱藏和充當全域性變數的角色。

特徵:

抽象類不能例項化。

不能用 sealed 修飾符修飾抽象類,因為這兩個修飾符的含義是相反的。 採用 sealed 修飾符的類無法繼承,而abstract 修飾符要求對類進行繼承。

從抽象類派生的非抽象類必須包括繼承的所有抽象方法和抽象訪問器的實際實現。

介面

定義:

介面泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。

抽象類和介面的比較:

抽象類表示該類中可能已經有一些方法的具體定義,但是介面就僅僅只能定義各個方法的介面(方法名,引數列表,返回型別),並不關心具體細節。

介面是引用型別的,和抽象類的相似之處有三點:

1.不能例項化;

2.包含未實現的方法宣告;

3.派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員。

區別:

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。類可以實現無限個介面,但僅能從乙個抽象類繼承,從抽象類派生的類仍可實現介面,從而得出介面是用來解決多重繼承問題的。

介面是抽象類的變體,介面中所有的方法都是抽象的。抽象類裡面可以有非抽象方法但介面裡只能有抽象方法宣告方法的存在而不去實現它的類被叫做抽象類。介面定義方法,不能實現,而抽象類可以實現部分方法。

抽象類當中可以存在非抽象的方法,可介面不能。抽象類中的成員變數可以被不同的修飾符來修飾,可介面中的成員變數預設的都是靜態常量static。

抽象類和介面異同

本文總結了在 c 當中,介面與抽象類的一些異同,來與大家共享。1 抽象方法只作宣告,而不包含實現,可以看成是沒有實現體的虛方法 2 抽象類不能被例項化 3 抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法,就一定要把這個類宣告為抽象類 4 具體派生類必須覆蓋基類的抽象方法 5 抽象派生...

介面和抽象類的異同

相同點 抽象類和介面均包含抽象方法,類必須實現所有的抽象方法,否則是抽象類 抽象類和介面都不能例項化,他們位於繼承樹的頂端,用來被其他類繼承和實現 兩者的區別主要體現在兩方面 語法方面和設計理念方面 語法方面的區別是比較低層次的,非本質的,主要表現在 介面中只能定義全域性靜態常量,不能定義變數。抽象...

抽象類和介面的異同

抽象類 有抽象方法的類必須定義成抽象類,抽象類可以沒有抽象方法 抽象類和介面的相同點 1.代表系統的抽象層,都不能例項化,都能包含抽象方法 用於描述系統提供的服務,不必提供具體實現 2.都可以指向子類 實現類 物件 不同點 1.構造方法 抽象類可以有構造方法,介面中不能有構造方法 2.變數 1 普通...