C#關(guān)鍵字之覆寫(xiě)overwrite介紹
一、簡(jiǎn)介
overwrite覆寫(xiě),用new實(shí)現(xiàn)。在子類(lèi)中用 new 關(guān)鍵字修飾定義的與父類(lèi)中同名的方法,也稱(chēng)為覆蓋,覆蓋不會(huì)改變父類(lèi)方法的功能。
二、代碼
namespace 重寫(xiě)
{
class Parent
{
public void F()
{
Console.WriteLine("Parent.F()");
}
//重寫(xiě)的屬性必須是virtual、abstract或override
public virtual void G() //虛方法
{
Console.WriteLine("Parent.G()");
}
}
class ChildOne : Parent //子類(lèi)一繼承父類(lèi)
{
new public void F() //覆寫(xiě)(overwrite)父類(lèi)函數(shù)
{
Console.WriteLine("ChildOne.F()");
}
public override void G() //重寫(xiě)(override)父類(lèi)虛函數(shù),主要實(shí)現(xiàn)多態(tài)
{
Console.WriteLine("ChildOne.G()");
}
}
class ChildTwo : Parent //子類(lèi)二繼承父類(lèi)
{
new public void F()
{
Console.WriteLine("ChildTwo.F()");
}
public override void G()
{
Console.WriteLine("ChildTwo.G()");
}
}
class Program
{
static void Main(string[] args)
{
Parent childOne = new ChildOne();
Parent childTwo = new ChildTwo();
//調(diào)用Parent.F()
childOne.F();
childTwo.F();
//實(shí)現(xiàn)多態(tài)
childOne.G();
childTwo.G();
}
}
}三、結(jié)果
重寫(xiě)子類(lèi)的方法,但是不會(huì)覆蓋父類(lèi)的方法。

到此這篇關(guān)于C#關(guān)鍵字之覆寫(xiě)overwrite的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)圖片放大功能的按照像素放大圖像方法
這篇文章主要介紹了C#實(shí)現(xiàn)圖片放大功能的按照像素放大圖像方法,功能非常實(shí)用,需要的朋友可以參考下2014-07-07
C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)
這篇文章介紹了C#使用Oracle.ManagedDataAccess.dll組件連接Oracle數(shù)據(jù)庫(kù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
insert語(yǔ)句太長(zhǎng)用StringBuilder優(yōu)化一下
insert語(yǔ)句太長(zhǎng)用StringBuilder優(yōu)化一下,下面是示例代碼,需要的朋友可以研究研究2014-07-07

