1. 程式人生 > >抽象類與接口學習總結

抽象類與接口學習總結

isa 無法 修飾 索引 str 方式 常常 abstract ide



當定義一個類時,常常需要定義一些方法來描述該類的行為特征,但有時這些方法的實現方式是無法確定的。所以在出c#中允許在定義方法時不寫方法體,不包含方法體的方法稱為抽象方法,它被abstract修飾符標記。包含抽象方法的類要聲明為抽象類,但抽象類可以不包含抽象方法,抽象類不可以被實例化。如果想調用抽象類中的方法,需要創建一個子類,在子類中實現抽象方法。任何派生自抽象類的類必須使用override關鍵字實現該類所有的抽象成員,除非派生類自己也是抽象類。
如果一個抽象類中的所有方法都是抽象的,則可以將這個類用另外一種方式來定義,即接口。在定義接口時,需要使用interface關鍵字來聲明。
接口聲明不包含數據成員,接口聲明只能包含如下類型的靜態成員函數的聲明:方法、屬性、事件、索引。這些函數成員的聲明不能包含任何實現代碼,而在每一個成員聲明的主體後必須使用分號。按照慣例,接口名稱必須從大寫的I開始(比如ISaveable)。和類以及結構一樣,接口聲明還可以分隔成分部接口聲明。接口中所有的方法都是抽象的,不能被實例化。一個類可以實現多個接口,被實現的多個接口之間要用逗號隔開。

抽象類與接口學習總結