抽象類和介面

2021-05-25 02:56:31 字數 1874 閱讀 8240

抽象類:

1.      

是一種特殊的類,除了不能被例項化外,具有類得其他特性.

2.      

抽象類的方法可以不宣告為abstract,此時可以實現方法提;如果宣告為abstract,則不可以實現方法體,只能宣告,如:public

abstract int remove(int i,int j)  此時類必須宣告為抽象

3.乙個類繼承抽象類,則抽象類的訪問性要》=繼承類的訪問性

abstract

class abstractclass

public

abstract int remove(int i,int j);

public

int add(int i, int j)

} public

class s : abstractclass

} 這樣的編譯會報錯

1.      

建構函式會執行,先執行抽象類,再執行繼承類。

2.繼承類必須覆蓋抽象類的抽象方法用overridevirtual或new則報錯

public override int remove(int i, int j)

3.      

只能單一繼承抽象類。

介面

1.      

不能被例項化。

2.      

成員只能系方法,屬性,所引起和事件,且只能宣告。

3.      

成員預設是public

4.      

派生類必須全部實現介面的全部成員

5.      

派生類的成員必須系public,但可以用virtual或者abstract(如果派生類為抽象類)修飾

6.      

派生類可以繼承多個介面.

7.派生類可以有其他成員,如欄位。

抽象類和介面的相同點

1.      

不能被例項化

2.      

可以被繼承

3.      

可以包含方法的宣告,抽象類可以有方法的實現體,介面只能宣告。

4.      

派生類必須實現沒實現的方法。抽象類實現抽象的方法,介面須全部實現

抽象類和介面的區別

1.      

成員不同:抽象類可以有建構函式,私有欄位等,介面則只可以有屬性,方法,索引器,和事件。

2.      

抽象類可以可以實現成員,只要不被宣告為abstract;介面的成員只能宣告

3.      

抽象類的派生類實現的是抽象的成員,介面的派生類實現全部成員

4.      

繼承不同:派生類只能單一繼承抽象類或者類,但可以多重繼承介面。

5.如果抽象類繼承介面,則可以把介面的方法對映到抽象類的抽象方法,而抽象類的子類必須全部實現介面的方法。

6.抽象類用於關係緊密的類,介面用於定義動作。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...

抽象類和介面

抽象類的定義規則 1.抽象類和抽象方法都必須用abstract關鍵字來修飾 2.抽象類不能被例項化,即不能用new關鍵字去產生物件 3.抽象方法只需宣告,不需實現 4.含有抽象方法的類必須被稱為抽象類,抽象的子類必須覆蓋所有的抽象方法後才能被例項化,否則這個子類還是個抽象類 注意 構造方法 私有方法...