日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

简述c#之sealed 修饰符

發(fā)布時(shí)間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简述c#之sealed 修饰符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

sealed 修飾符表示密封

用于類時(shí),表示該類不能再被繼承,不能和 abstract 同時(shí)使用,因?yàn)檫@兩個(gè)修飾符在含義上互相排斥

用于方法和屬性時(shí),表示該方法或?qū)傩圆荒茉俦恢貙?#xff0c;必須和 override 關(guān)鍵字一起使用,因?yàn)槭褂?sealed 修飾符的方法或?qū)傩钥隙ㄊ腔愔邢鄳?yīng)的虛成員

通常用于實(shí)現(xiàn)第三方類庫時(shí)不想被客戶端繼承,或用于沒有必要再繼承的類以防止濫用繼承造成層次結(jié)構(gòu)體系混亂

恰當(dāng)?shù)睦?sealed 修飾符也可以提高一定的運(yùn)行效率,因?yàn)椴挥每紤]繼承類會(huì)重寫該成員

示例:

Code
using?System;
using?System.Collections.Generic;
using?System.Text;?

namespace?Example06
{????
???class?Program????
???{????????
????class?A????????
????{????????????
???????public?virtual?void?F()????????????
???????{????????????????
???????????Console.WriteLine("A.F");????????????
???????}????????????
???????public?virtual?void?G()????????????
???????{????????????????
???????????Console.WriteLine("A.G");????????????
???????}????????
????}????????
????class?B?:?A????????
????{????????????
????????public?sealed?override?void?F()
????????{
???????????Console.WriteLine("B.F");?
????????}????????????
????????public?override?void?G()?
????????{
????????????Console.WriteLine("B.G");
????????}?
????}????????
????class?C?:?B
????{
?????????public?override?void?G()
?????????{
?????????????Console.WriteLine("C.G");
?????????}
????}
????????static?void?Main(string[]?args)
????????{
????????????new?A().F();
????????????new?A().G();
????????????new?B().F();
????????????new?B().G();
????????????new?C().F();
????????????new?C().G();
????????????Console.ReadLine();
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;?

namespace?Example06
{????
???class?Program????
???{????????
????class?A????????
????{????????????
???????public?virtual?void?F()????????????
???????{????????????????
???????????Console.WriteLine("A.F");????????????
???????}???

在基類(父類)中用virtual修飾符聲明一個(gè)虛方法,然后在在派生類(子類)中用override修飾符覆蓋基類虛方法。表明是對(duì)基類的虛方法重載。
這種優(yōu)勢(shì)在于它可以在程序運(yùn)行時(shí)再?zèng)Q定調(diào)用哪一個(gè)方法,這就是所謂的“運(yùn)行時(shí)多態(tài)”
或者稱動(dòng)態(tài)綁定。


???????public?virtual?void?G()????????????
???????{????????????????
???????????Console.WriteLine("A.G");????????????
???????}????????
????}????????
????class?B?:?A????????
????{????????????
????????public?sealed?override?void?F()
????????{
???????????Console.WriteLine("B.F");?
????????}????????????
????????public?override?void?G()?
????????{
????????????Console.WriteLine("B.G");
????????}?
????}????????
????class?C?:?B
????{
?????????public?override?void?G()
?????????{
?????????????Console.WriteLine("C.G");
?????????}
????}
????????static?void?Main(string[]?args)
????????{
????????????new?A().F();
????????????new?A().G();
????????????new?B().F();
????????????new?B().G();
????????????new?C().F();
????????????new?C().G();
????????????Console.ReadLine();
????????}
????}
}

?

?

結(jié)果: 類 B 在繼承類 A 時(shí)可以重寫兩個(gè)虛函數(shù),如圖所示:

?

由于類 B 中對(duì) F 方法進(jìn)行了密封, 類 C 在繼承類 B 時(shí)只能重寫一個(gè)函數(shù),如圖所示:

?

控制臺(tái)輸出結(jié)果,類 C 的方法 F 只能是輸出 類B 中對(duì)該方法的實(shí)現(xiàn):

?

A.F A.G B.F B.G B.F C.G

?

轉(zhuǎn)載于:https://www.cnblogs.com/TJessica/p/7059391.html

總結(jié)

以上是生活随笔為你收集整理的简述c#之sealed 修饰符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。