亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解析在C#中接口和類(lèi)的異同

 更新時(shí)間:2019年01月22日 08:36:21   作者:Mogul1  
今天小編就為大家分享一篇關(guān)于解析在C#中接口和類(lèi)的異同,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

不同點(diǎn):

不能直接實(shí)例化接口。

接口不包含方法的實(shí)現(xiàn)。

接口可以多繼承,類(lèi)只能單繼承。

類(lèi)定義可以在不同的源文件之間進(jìn)行拆分。

相同點(diǎn):

接口、類(lèi)和結(jié)構(gòu)都可以從多個(gè)接口繼承。

接口類(lèi)似于抽象基類(lèi):繼承接口的任何非抽象類(lèi)型都必須實(shí)現(xiàn)接口的所有成員。

接口和類(lèi)都可以包含事件、索引器、屬性。

接口只能定義方法。

1. 類(lèi)

類(lèi)的分類(lèi)有:抽象類(lèi)(abstract)、密封類(lèi)(sealed)、靜態(tài)類(lèi)(static)

1.1 抽象類(lèi)

關(guān)鍵字: abstract

使用目的:若所有子類(lèi)擁有共同的特性,可以把這個(gè)特性放到一個(gè)抽象類(lèi)中,子類(lèi)繼承此抽象類(lèi)。 

特點(diǎn):

    1.不能被實(shí)例化;ClassName en=new ClassName();//這樣會(huì)報(bào)錯(cuò)。

    2.抽象成員必須包含在抽象類(lèi)中。

    3.抽象類(lèi)除了抽象成員外,還可以包含別的成員(不用關(guān)鍵字 abstract)。

    4.子類(lèi)繼承抽象父類(lèi)后,必須把父類(lèi)中的所有抽象成員都重寫(xiě)(非抽象成員不必重寫(xiě))。除非子類(lèi)也是個(gè)抽象類(lèi)。

    5.抽象成員的訪問(wèn)修飾符不能是private。

    6.抽象類(lèi)是有構(gòu)造函數(shù),雖然不能被實(shí)例化。

    7.abstract不能用于字段成員,可定義成屬性。

    8.abstract用于方法時(shí),方法不能定義主體(內(nèi)容)。

    9.抽象類(lèi)也可以實(shí)現(xiàn)接口,但要把接口的成員前面標(biāo)記個(gè)abstract。

1.2 密封類(lèi)

關(guān)鍵字:sealed

使用目的:不需要子類(lèi)來(lái)繼承他。如 String;

特點(diǎn):

    1.不能被繼承,如:string ,不能被繼承。

    2.子類(lèi)重寫(xiě)后,前面加個(gè)sealed,那么子類(lèi)就不能再被繼承。

1.3 靜態(tài)類(lèi)

關(guān)鍵字: static

使用目的:不需要實(shí)例化,可以直接類(lèi)名引用靜態(tài)方法。比如 工具類(lèi)。

特點(diǎn):

    1.相似于sealed與abstract使用。

    2.靜態(tài)成員在整個(gè)程序退出時(shí)才釋放資源,所以盡量別寫(xiě)靜態(tài)字段、屬性。最好是靜態(tài)方法。

2. 接口

關(guān)鍵字:interface

使用目的:抽象類(lèi)所擁有的共性,也可以概括為:為了多態(tài)。

特點(diǎn):

    1.接口中只能包含方法。(方法、屬性、索引器、事件)

    2.接口中的方法不能有任何實(shí)現(xiàn)

    3.接口中的成員不能有任何訪問(wèn)修飾符(哪怕是public)

    4.接口不能被實(shí)例化

    5.實(shí)現(xiàn)接口的類(lèi),必須實(shí)現(xiàn)接口的所有成員(這里跟抽象類(lèi)一樣)

    6.類(lèi)不能多繼承,所以在某些情況下,只能用接口來(lái)代替。接口可以多實(shí)現(xiàn)(一個(gè)類(lèi)可以繼承多個(gè)接口,而只能繼承一個(gè)類(lèi))

    7.接口的主要目的就是為了實(shí)現(xiàn)多態(tài)

    8.當(dāng)一個(gè)類(lèi),同時(shí)繼承了某個(gè)類(lèi),并且也實(shí)現(xiàn)了某些接口的時(shí)候,必須要將繼承的類(lèi)寫(xiě)在第一個(gè)(如果一個(gè)類(lèi)同時(shí)繼承了父類(lèi)和接口的時(shí)候,要把父類(lèi)寫(xiě)在最前面)

    9.當(dāng)多個(gè)類(lèi),都具有某個(gè)或某幾個(gè)功能時(shí)(方法),但是這幾個(gè)類(lèi)型又不屬于相同的系列(這幾個(gè)類(lèi)型沒(méi)有共同的父類(lèi),就不能用抽象類(lèi)。),所以這時(shí),為了實(shí)現(xiàn)多態(tài)就可以考慮把這幾個(gè)類(lèi)型共有的方法提取到一個(gè)接口中,讓這幾個(gè)類(lèi)型分別實(shí)現(xiàn)該接口

    10.當(dāng)父類(lèi)實(shí)現(xiàn)接口,子類(lèi)繼承父類(lèi)。那么 接口就可以引用子類(lèi)

    11.不要在一個(gè)接口中寫(xiě)過(guò)多的方法,避免造成接口污染??删帉?xiě)多個(gè)接口,在每個(gè)接口中,分別定義方法

    12.實(shí)現(xiàn)接口方法的時(shí)候,不要有override關(guān)鍵字,直接跟平常定義一樣

    13.接口方法的顯示實(shí)現(xiàn),如果多個(gè)接口里有相同的方法名。那么第一個(gè)方法名默認(rèn)的引用的是排在最前面的接口,如果要使用后面接口的方法,就要顯示實(shí)現(xiàn):接口名.方法名。訪問(wèn)修飾符是private

總的來(lái)說(shuō),接口和抽象類(lèi)是.Net為了更好的實(shí)現(xiàn)類(lèi)型之間繼承關(guān)系而提供的語(yǔ)言手段,而且兩者有些相輔相成的關(guān)系。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • 淺談C# winForm 窗體閃爍的問(wèn)題

    淺談C# winForm 窗體閃爍的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談C# winForm 窗體閃爍的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift

    C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift

    這篇文章介紹了C#使用遠(yuǎn)程服務(wù)調(diào)用框架Apache Thrift的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • KMP算法的C#實(shí)現(xiàn)方法

    KMP算法的C#實(shí)現(xiàn)方法

    這篇文章主要介紹了KMP算法的C#實(shí)現(xiàn)方法,代碼簡(jiǎn)潔實(shí)用,需要的朋友可以參考下
    2014-09-09
  • C#向數(shù)據(jù)庫(kù)中插入或更新null空值與延遲加載lazy

    C#向數(shù)據(jù)庫(kù)中插入或更新null空值與延遲加載lazy

    這篇文章介紹了C#向數(shù)據(jù)庫(kù)中插入或更新null空值與延遲加載lazy,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法

    C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法

    某論壇的評(píng)論區(qū)模塊,發(fā)現(xiàn)這功能很不錯(cuò),琢磨了一晚上做了大致一樣的,用來(lái)當(dāng)做 注冊(cè)模塊 的頭像綁定功能,下面通過(guò)實(shí)例代碼給大家介紹下C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法,感興趣的朋友一起看看吧
    2021-11-11
  • 詳解使用C#編寫(xiě)SqlHelper類(lèi)

    詳解使用C#編寫(xiě)SqlHelper類(lèi)

    本篇文章主要介紹了使用C#編寫(xiě)SqlHelper類(lèi),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Unity3D Shader實(shí)現(xiàn)鏡子效果

    Unity3D Shader實(shí)現(xiàn)鏡子效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D Shader實(shí)現(xiàn)鏡子效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Unity 點(diǎn)擊UI與點(diǎn)擊屏幕沖突的解決方案

    Unity 點(diǎn)擊UI與點(diǎn)擊屏幕沖突的解決方案

    這篇文章主要介紹了Unity 點(diǎn)擊UI與點(diǎn)擊屏幕沖突的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • C#通過(guò)屬性名字符串獲取、設(shè)置對(duì)象屬性值操作示例

    C#通過(guò)屬性名字符串獲取、設(shè)置對(duì)象屬性值操作示例

    這篇文章主要介紹了C#通過(guò)屬性名字符串獲取、設(shè)置對(duì)象屬性值操作,結(jié)合實(shí)例形式總結(jié)分析了C#通過(guò)反射獲取對(duì)象屬性值并設(shè)置屬性值,獲取對(duì)象的所有屬性名稱(chēng)及類(lèi)型等相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03

最新評(píng)論