日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

【原创】C#中的抽象类(abstract class)和接口(interface)的比较

發布時間:2023/12/10 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原创】C#中的抽象类(abstract class)和接口(interface)的比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在C#中抽象類和接口是兩個相當重要的概念,深入理解對C#程序員是非常必要的,現總結如下:

一、抽象類的特點:

1、抽象方法只用于方法的聲明并不包含方法的實現,可以看作沒有實現實體的虛方法。

2、抽象類不能進行實例化。

3、抽象類里面可以不包含抽象屬性和抽象方法,但如果包含抽象方法,則該類必須聲明為抽象類。

4、具體的派生類必須覆蓋基類的抽象方法。

5、抽象類也可以派生另一個抽象類,其中可以覆蓋基類的抽象方法也可以不用覆蓋,但是不覆蓋的話,

則其派生類比較覆蓋它們。

二、接口(interface)的特點

1、接口也不能進行實例化。

2、接口只能包含類的聲明。

3、成員可以包含屬性、方法、事件和索引器。

4、接口中不能包含常量、字段、構造函數、析構函數或靜態成員。

5、接口 中所有的成員都默認用public修飾符進行修飾,不能出現private修飾符。

6、派生類比較實現接口所有的成員。

7、一個可以繼承多個接口,接口之間用 , 分割。

8、一個接口可以有多個父接口,實現該接口的類必須實現所有父接口中的所有成員。

三、抽象類和接口的相同之處

1、都不能被實例化。

2、都可以被繼承。

3、都可以包含方法聲明。

4、派生類必須實現抽象類(接口)中未實現的方法。

四、抽象類和接口的不同之處

1、抽象類是一個不完整的類,需要進一步細化;接口只是一個行為的規范或規定。

2、抽象基類可以定義字段、屬性和方法實現;接口只能定義屬性、索引器、事件和方法聲明,不能包含字段。

3、抽象類更多的是定義在一系列關系緊密的類之間;接口大多定義在關系稀松但都實現某一功能的操作。

4、接口不具有繼承的任何特點。

5、接口可以被多重實現,抽象類只能被單一繼承。

6、接口支持回調,抽象類不可以。

7、抽象類不能密封。

8、抽象類實現的具體方法默認為虛的;但實現接口的類中的接口方法默認不是虛的,當然也可手動聲明為虛的。

9、接口和非抽象類類似,抽象類必須為在該類的基類列表中列出的接口的所有成員提供他自己的實現。但是允許抽象類將接口的方法隱射到抽象方法上。

10、如果抽象類實現接口,則可以把接口中的方法映射到抽象類中作為抽象方法而不必實現,而是在抽象類的子類中實現接口中的方法。

我的最新公眾號歡迎關注一下

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【原创】C#中的抽象类(abstract class)和接口(interface)的比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。