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://chabaoo.cn/sosoft/");
}
public virtual void functionB()
{
Console.WriteLine("BaseFunctionB http://chabaoo.cn/sosoft/");
}
}
public class DerivedClass:BaseClass
{
public new void functionA()
{
Console.WriteLine("DerivedFunctionA http://chabaoo.cn/sosoft/");
}
public override void functionB()
{
Console.WriteLine("DerivedFunctionB http://chabaoo.cn/sosoft/");
}
}
當(dāng)利用多態(tài)性執(zhí)行下面代碼時(shí):
BaseClass baseFunction=new DerivedClass();
baseFunction.functionA();
baseFunction.functionB();
得到的結(jié)果是:
BaseFunctionA http://chabaoo.cn/sosoft/
DerivedFunctionB http://chabaoo.cn/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í)現(xiàn)Winform無邊框移動(dòng)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Winform無邊框移動(dòng)的方法,涉及C#針對(duì)WinForm窗口操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Unity OnGUI實(shí)時(shí)顯示游戲FPS
這篇文章主要為大家詳細(xì)介紹了Unity OnGUI實(shí)時(shí)顯示游戲FPS,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11C#實(shí)現(xiàn)的文件操作封裝類完整實(shí)例【刪除,移動(dòng),復(fù)制,重命名】
這篇文章主要介紹了C#實(shí)現(xiàn)的文件操作封裝類,結(jié)合完整實(shí)例形式分析了C#封裝文件的刪除,移動(dòng),復(fù)制,重命名等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03