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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中类的override和virtual

發(fā)布時間:2023/12/4 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中类的override和virtual 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎您成為我的讀者,希望這篇文章能給你一些幫助。

前言

昨天和大家一起學(xué)習(xí)類的派生,知道派生類和基類的區(qū)別。

今天咱們一起看看派生類和基類的虛方法和覆寫方法是如何使用的。

我們使用基類引用訪問派生類對象時,得到的是基類的成員。當(dāng)使用虛方法時,可以得到派生類的成員和函數(shù)。

class?Ahui:InfoBase{public?string?Name?=?"阿姨";public?string?GetInfo()?{return?this.Name+""+this.Age;}class?InfoBase?{public?int?Age=27;public?string?Name?=?"ahui"?public?string?GetInfo()?{return?Name;public?string?Love()?{return?"女";}}

上面的代碼是一個簡單的基類和派生類的表達(dá),我們嘗試著通過基類InfoBase的引用來訪問派生類Ahui里面的方法看各自輸出上面。

static?void?Main(string[]?args){Ahui?hui?=?new?Ahui();InfoBase?info?=?(InfoBase)hConsole.WriteLine(hui.GetInfo());Console.WriteLine(info.GetInfo());Console.ReadKey();}輸出1

從上面的圖片可以看到通過各自的實(shí)例訪問到的GetInfo()方法返回的值不一樣,基類返回自己的,派生類返回自己的。

那么我們想要使用基類的引用訪問派生類對象時,可以通過虛方法來實(shí)現(xiàn)訪問。

它必須滿足如下條件:

  • 派生類的方法和基類的方法有相同的簽名和返回類型。

  • 基類的方法使用virtual標(biāo)注。

  • 派生類的方法使用override標(biāo)注。

class?Ahui:InfoBase{public?string?Name?=?"阿姨";public?override?string?GetInfo()?{return?this.Name+""+this.Age;}class?InfoBase?{public?int?Age=27;public?string?Name?=?"ahui"?????public?virtual?string?GetInfo()?{return?Name;public?string?Love()?{return?"女";}}輸出2

相比較上一個輸出圖片,可以看到當(dāng)使用虛方法和覆寫標(biāo)記時,輸出的都是派生類的成員。

需要注意的是:

  • 覆寫和被覆寫的方法必須有相同的可訪問性。

  • 不能覆寫static方法或非虛方法。

  • 方法、屬性和索引器、成員類型事件都可以被聲明為virtual和override。

寄語

人生短暫,我不想去追求自己看不見的,我只想抓住我能看得見的。

我是阿輝,感謝您的閱讀,如果對你有幫助,麻煩點(diǎn)贊、轉(zhuǎn)發(fā) ?謝謝。

很高興能和您成為朋友。

推薦閱讀

分享給同做程序員的你我他

畢業(yè)四年,我當(dāng)初是如何走上編程這條路的!

物聯(lián)網(wǎng)工程專業(yè)的迷茫與抉擇

總結(jié)

以上是生活随笔為你收集整理的C#中类的override和virtual的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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