在C#語言中有一種特殊的基類,那就是抽象類。有時候,基類并不與具體的事物聯系,而是只是表達一種抽象的概念,用于為它的派生類提供一個公共的界面。為此,C#中引入了抽象類和抽象方法的概念。
抽象類概述
抽象類提供多個派生類共享基類的公共定義,它既可以提供抽象方法,也可以提供非抽象方法。抽象類不能實例化,必須通過繼承由派生類實現其抽象方法,因此對抽象類不能使用new關鍵字,也不能被密封。如果派生類沒有實現所有的抽象方法,則該派生類也必須聲明為抽象類。另外,實現抽象方法由override方法來實現。
抽象類使用abstract修飾符,對抽象類的使用有幾點規定:
C#中聲明抽象類時需要使用abstract關鍵字,語法格式為:
訪問修飾符 abstract class 類名:基類或接口
{
類成員;
}
聲明抽象類時,除abstract關鍵字,class關鍵字和類名外,其他的都是可選項。
抽象方法概述
由于抽象類本身表達的是抽象的概念,因此類中的許多方法并不一定要有具體的實現,而只是留出一個接口來作為派生類重載的界面。
一個方法聲明中如果加上abstract修飾符,此方法就被稱為抽象方法。如果一個方法被聲明也是抽象的,那么該方法默認也是一個虛方法。事實上,抽象方法是一個新的虛方法,它不提供具體的方法實現程序,而非虛派生類要求通過重載為繼承的虛方法提供自己的實現,而抽象方法則不包含具體的實現內容,所以方法聲明的執行體只有一個分號“;”。用戶只能在抽象類中聲明抽象方法。對抽象方法,不能再使用static或virtual修飾符,而且方法不
主站蜘蛛池模板:
保靖县|
新闻|
滨州市|
台江县|
若尔盖县|
安仁县|
婺源县|
都兰县|
镇宁|
平阴县|
泰州市|
滨州市|
金乡县|
兴文县|
电白县|
涞水县|
乌审旗|
西乡县|
保山市|
长宁县|
观塘区|
沙洋县|
黔南|
台中市|
寻乌县|
马关县|
甘肃省|
洛宁县|
浦县|
河东区|
多伦县|
和田县|
海林市|
兴城市|
盐山县|
拉孜县|
诏安县|
璧山县|
隆尧县|
武陟县|
瑞丽市|