C 中介面和抽象類的異同點

2022-03-11 22:05:56 字數 666 閱讀 9967

介面和抽象類的異同點:

類似之處:

1、抽象類和介面都包含可以由派生類繼承的成員

2、介面和抽象類都不能直接例項化,但可以宣告它們的變數。如果這樣做,就可以使用多型性把繼承這兩種型別的物件指定給它們的變數。接著通過這些變數來使用這些型別的成員,但不能直接訪問派生物件的其他成員。

區別:

1、派生類只能繼承乙個基類,即只能直接繼承乙個抽象類(但可以用乙個繼承鏈包含多個抽象類)。相反,類可以使用多個介面。

2、抽象類可以擁有抽象成員(沒有**體,且必須在派生類中實現,否則派生類本身也必須是抽象的)和非抽象成員(它們擁有**體,也可以是虛擬的,這樣就可以在派生類中重寫)。

3、介面成員必須都在使用介面的類上實現--它們沒有**體。

4、介面成員是公共的(因為它們傾向於在外部使用),但抽象類的成員可以是私有的(只要它們不是抽象的)、受保護的、內部的或受保護的內部成員(其中受保護的內部成員只能在應用程式的**或派生類中訪問)。

5、介面不能包含字段、建構函式、析構函式、靜態成員或常量。

注意:這說明這兩種型別用於完全不同的目的,抽象類主要用作物件系列的基類,共享某些主要特性。例如共同的目的和結構。介面則主要用於類,這些類在基礎水平上有所不同,但仍可以完成某些相同的任務。

抽象類和介面異同點

抽象類不能建立例項,它只能作為父類被繼承。抽象類是從多個具體類中抽象出來的父類,它具有更高層次的抽象。從多個具有相同特徵的類中抽象出乙個抽象類,以這個抽象類作為其子類的模板,從而避免了子類的隨意性。1 抽象方法只作宣告,而不包含實現,可以看成是沒有實現體的虛方法 2 抽象類不能被例項化 3 抽象類可...

Java中介面和抽象類的異同點

相同點 兩者都是不斷向上抽取而來 都需要在子類中實現具體的抽象方法 都不能用new關鍵字來建立物件 都定義了抽象方法 不同點 抽象類在其類前必須加abstract關鍵字,而介面需要在加inte ce 在抽象類中除了有抽象方法還可以有其他非抽象方法和例項變數,子類繼承後可以直接使用非抽象方法,而介面中...

介面與抽象類的異同點

介面與抽象類的異同點 相同點 都不能直接被例項化,必須要通過子類或實現類進行例項化。子類或實現類必須重寫全部父類的抽象方法,否則該類要被宣告為抽象類。不同點 1.關鍵字 關鍵字不同,abstract class,inte ce 2.成員變數 抽象類中的成員變數可以是常量,也可以是變數。介面中的只能是...