C 之抽象類和抽象方法

2022-01-18 08:27:30 字數 1024 閱讀 4191

概述:abstract 關鍵字  抽象類不能被例項化,抽象方法不能有方法體,抽象類中的所有抽象方法必須在子類中重寫(override),乙個抽象類可以同時包含抽象方法和非抽象方法。

abstract修飾符可以和類、方法、屬性、索引器及事件一起使用。

在類宣告中使用abstract修飾符以指示類只能是其他類的基類。

抽象類具有以下特性:

在方法或屬性宣告中使用abstract修飾符以指示此方法或屬性不包含實現。

抽象方法具有以下特性:

除了在宣告和呼叫語法上不同外,抽象屬性的行為與抽象方法一樣。

抽象類必須為所有介面成員提供實現。

msdn中c#語言規範的:10.1.1.1抽象類。此文如下:

abstract修飾符用於表示所修飾的類是不完整的,並且它只能用作基類。抽象類與非抽象類在以下方面是不同的:

當從抽象類派生非抽象類時,這些非抽象類必須具體實現所繼承的所有抽象成員,從而重寫那些抽象成員。在下面的示例中

abstract

classa

abstract

class

b: a }

class

c: b

}

抽象類a引入抽象方法f。類b引入另乙個方法g,但由於它不提供f的實現,b也必須宣告為抽象類。類c重寫f,並提供乙個具體實現。由於c中沒有了抽象成員,因此可以(但並非必須)將c宣告為非抽象類。

那麼我們什麼時候應該用抽象類呢?

如果乙個類設計的目點是用來被其它類繼承的,它代表一類物件的所具有的公共屬性或方法,那個這個類就應該設定為抽象類。

C 之抽象類和抽象方法

抽象類中的方法既可以有抽象方法,也可以有非抽象方法,可以全部都是抽象方法,也可以全部都是非抽象方法 抽象方法只能出現在抽象類或介面中,不能出現在非抽象類中 抽象類和介面不能new物件 抽象類可以繼承抽象類,也可以繼承非抽象類 籠統的,模糊,不具體的類 為什麼說籠統的呢?從上圖可以看出來,圖中有個動物...

抽象方法和抽象類

思想 利用通用介面建立的一種基本形式,以此表示所有匯出類的共同部分 概念 1 抽象方法 僅有宣告,沒有方法體 2 抽象類 含抽象方法的類 要點 抽象類可以不含抽象方法 抽象類不能被例項化 不能使用 new 關鍵字 子類繼承抽象父類而不提供方法定義,則子類也必須為抽象類 抽象類可以包含屬性 方法 構造...

抽象方法和抽象類

1.什麼是抽象方法 定義 乙個方法如果沒有方法體 乙個方法不使用 直接使用分號結束的方法,才是沒有方法體的方法 則這個方法就是抽象方法 一 宣告乙個方法,不適用 而直接分號結束 二 如果是抽象方法,必須使用 abstract 抽象關鍵字來修飾 三 不是抽象類,不可以使用抽象方法 2.什麼是抽象類 一...