c#方法重寫和隱藏的學(xué)習(xí)示例
最近正在學(xué)習(xí)c#,對(duì)其中的方法重寫和隱藏的概念很是模糊,現(xiàn)在將其歸納如下:
1:方法重寫:就是在基類中的方法用virtual關(guān)鍵字來標(biāo)識(shí),然后在繼承類中對(duì)該類進(jìn)行重寫(override),這樣基類中的方法已經(jīng)被重寫了,已經(jīng)失去了功能了。當(dāng)讓基類的對(duì)象的引用直接指向繼承類的對(duì)象時(shí)(多態(tài)性),調(diào)用該方法則是調(diào)用的繼承類的方法。
2:方法隱藏:無論基類中的方法是否用了virtual關(guān)鍵字,繼承類中都可以用new關(guān)鍵字(如果不用new的話,不會(huì)產(chǎn)生錯(cuò)誤,但會(huì)生成一個(gè)編譯警告)將基類中的方法隱藏,所謂隱藏就是隱藏,不像重寫,重寫就是原來的(基類中)已經(jīng)不存在了,而隱藏是原來的還存在。所以當(dāng)讓基類的對(duì)象的引用直接指向繼承類的對(duì)象時(shí)(多態(tài)性),調(diào)用該方法則是調(diào)用的基類的方法。
代碼如下:
public class BaseClass
{
public void functionA()
{
Console.WriteLine("BaseFunctionA http://m.fzitv.net/sosoft/");
}
public virtual void functionB()
{
Console.WriteLine("BaseFunctionB http://m.fzitv.net/sosoft/");
}
}
public class DerivedClass:BaseClass
{
public new void functionA()
{
Console.WriteLine("DerivedFunctionA http://m.fzitv.net/sosoft/");
}
public override void functionB()
{
Console.WriteLine("DerivedFunctionB http://m.fzitv.net/sosoft/");
}
}
當(dāng)利用多態(tài)性執(zhí)行下面代碼時(shí):
BaseClass baseFunction=new DerivedClass();
baseFunction.functionA();
baseFunction.functionB();
得到的結(jié)果是:
BaseFunctionA http://m.fzitv.net/sosoft/
DerivedFunctionB http://m.fzitv.net/sosoft/
- 詳解C#用new和override來實(shí)現(xiàn)抽象類的重寫區(qū)別
- C# 重寫ComboBox實(shí)現(xiàn)下拉任意組件的方法
- C#重寫DataGridView
- 在C#的類或結(jié)構(gòu)中重寫ToString方法的用法簡(jiǎn)介
- C#通過重寫Panel改變邊框顏色與寬度的方法
- c#重寫TabControl控件實(shí)現(xiàn)關(guān)閉按鈕的方法
- C#中重載與重寫區(qū)別分析
- C#運(yùn)算符重載用法實(shí)例分析
- C#中重載相等(==)運(yùn)算符示例
- C#中多態(tài)、重載、重寫區(qū)別分析
- C#重載運(yùn)算符詳解
- 基于C#方法重載的總結(jié)詳解
- c# 重載WndProc,實(shí)現(xiàn)重寫“最小化”的實(shí)現(xiàn)方法
- C#中重載重寫和覆蓋的定義與區(qū)別
相關(guān)文章
C#判斷數(shù)據(jù)類型的簡(jiǎn)單示例代碼
本篇文章要是對(duì)C#中判斷數(shù)據(jù)類型的簡(jiǎn)單示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01
C#仿QQ實(shí)現(xiàn)簡(jiǎn)單的截圖功能
這篇文章主要為大家詳細(xì)介紹了如何利用C#語(yǔ)言模擬QQ實(shí)現(xiàn)屏幕選擇區(qū)域截圖功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08
js substr,substring與java substring和C# substring的區(qū)別解析
本篇文章主要是對(duì)js中substr,substring與java中substring和C#中substring的區(qū)別進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01
Unity3D動(dòng)態(tài)生成平面網(wǎng)格
這篇文章主要為大家詳細(xì)介紹了Unity3D動(dòng)態(tài)生成平面網(wǎng)格,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C#程序啟動(dòng)項(xiàng)的設(shè)置方法
這篇文章主要為大家詳細(xì)介紹了C#程序啟動(dòng)項(xiàng)的設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11

