欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用虛擬方法實(shí)現(xiàn)多態(tài)

 更新時(shí)間:2015年05月19日 09:59:26   作者:一羽清寧  
這篇文章主要介紹了C#使用虛擬方法實(shí)現(xiàn)多態(tài),涉及C#多態(tài)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C#使用虛擬方法實(shí)現(xiàn)多態(tài)。分享給大家供大家參考。具體分析如下:

我們看一個(gè)例子,假若有一個(gè)動(dòng)物類(lèi),類(lèi)中用方法cry()描述動(dòng)物的叫聲,不同的動(dòng)物的叫聲是不一樣的。根據(jù)繼承的特征,把類(lèi)中公共部分的內(nèi)容放在父類(lèi)中,那么cry()方法就應(yīng)該放在父類(lèi)中,根據(jù)這樣的思路編寫(xiě)程序如下:

using System;
class Anmial
{
public void Cry()
{
Console.WriteLine("這是動(dòng)物的叫聲");
}
}
class Dog: Anmial
{
public void Run()
{
  Console.WriteLine("狗路得快");
}
}
class Cat: Anmial
{
public void Look()
{
  Console.WriteLine("貓長(zhǎng)得乖");
}
}
class Test
{
static void Main()
{
  Dog mydog = new Dog();
  mydog.Cry();
  mydog.Run();
  Cat mycat = new Cat();
  mycat.Cry();
  mycat.Look();
  Console.ReadKey();
}
}

運(yùn)行后發(fā)現(xiàn)狗和貓的叫聲是相同的,都是調(diào)用了父類(lèi)Cry()方法?,F(xiàn)在希望在同一個(gè)方法Cry()能夠體現(xiàn)出不同動(dòng)物的叫聲,那么在子類(lèi)就應(yīng)該重新描述Cry(),也就是重寫(xiě)Cry()方法。

重寫(xiě)方法就是修改它的實(shí)現(xiàn),或者在派生類(lèi)中對(duì)它進(jìn)行重寫(xiě)。在父類(lèi)中用virtual 關(guān)鍵字聲明的方法在子類(lèi)中可以重寫(xiě),就是虛擬方法。虛擬方法的語(yǔ)法如下:

訪(fǎng)問(wèn)修飾符 virtual 返回類(lèi)型 方法名()
{
//方法體
}

在父類(lèi)中聲明的虛擬方法,在子類(lèi)中重寫(xiě)時(shí)用override關(guān)鍵字,就是將virtual關(guān)鍵字改成override,然后修改方法體中的代碼即可。

我們修改上面的代碼:

using System;
class Anmial
{
  public virtual void Cry()
{
Console.WriteLine("這是動(dòng)物的叫聲");
}
}
class Dog: Anmial
{
public override void Cry()
{
Console.WriteLine("這是狗的叫聲汪汪");
}
}
class Cat: Anmial
{
public override void Cry()
{
Console.WriteLine("這是貓的叫聲喵喵");
}
}
class Test
{
static void Main()
{
  Dog mydog = new Dog();
  mydog.Cry();
  Cat mycat = new Cat();
  mycat.Cry();
  Console.ReadKey();
}
}

注意:父類(lèi)方法的訪(fǎng)問(wèn)級(jí)別和子類(lèi)重寫(xiě)方法的訪(fǎng)問(wèn)級(jí)別相同,即它們應(yīng)該有相同的訪(fǎng)問(wèn)修飾符。
例如:

public virtual void Hello()

不能重寫(xiě)為:

private override void Hello()

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C# 多線(xiàn)程對(duì)資源讀寫(xiě)時(shí)如何控制的方法

    C# 多線(xiàn)程對(duì)資源讀寫(xiě)時(shí)如何控制的方法

    這篇文章主要介紹了C# 多線(xiàn)程對(duì)資源讀寫(xiě)時(shí)如何控制的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • C#中通過(guò)LRU實(shí)現(xiàn)通用高效的超時(shí)連接探測(cè)

    C#中通過(guò)LRU實(shí)現(xiàn)通用高效的超時(shí)連接探測(cè)

    這篇文章主要介紹了c#中通過(guò)LRU實(shí)現(xiàn)通用高效的超時(shí)連接探測(cè),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-11-11
  • C# winform循環(huán)播放多個(gè)視頻

    C# winform循環(huán)播放多個(gè)視頻

    這篇文章主要為大家詳細(xì)介紹了C# winform循環(huán)播放多個(gè)視頻的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • C#泛型接口的協(xié)變和逆變

    C#泛型接口的協(xié)變和逆變

    本文詳細(xì)講解了C#泛型接口的協(xié)變和逆變,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#中事件只能在內(nèi)部調(diào)用的原因分析

    C#中事件只能在內(nèi)部調(diào)用的原因分析

    事件(Event)?基本上說(shuō)是一個(gè)用戶(hù)操作,如按鍵、點(diǎn)擊、鼠標(biāo)移動(dòng)等等,或者是一些提示信息,如系統(tǒng)生成的通知。應(yīng)用程序需要在事件發(fā)生時(shí)響應(yīng)事件,這篇文章主要介紹了C#中事件為什么只能在內(nèi)部調(diào)用,需要的朋友可以參考下
    2021-11-11
  • C#實(shí)現(xiàn)String類(lèi)型和json之間的相互轉(zhuǎn)換功能示例

    C#實(shí)現(xiàn)String類(lèi)型和json之間的相互轉(zhuǎn)換功能示例

    這篇文章主要介紹了C#實(shí)現(xiàn)String類(lèi)型和json之間的相互轉(zhuǎn)換功能,涉及C# json格式數(shù)據(jù)的構(gòu)造、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#和Java中二維數(shù)組區(qū)別分析

    C#和Java中二維數(shù)組區(qū)別分析

    這篇文章主要介紹了C#和Java中二維數(shù)組區(qū)別分析,主要講述了二維數(shù)組在C#和Java中定義及應(yīng)用的區(qū)別,非常實(shí)用,需要的朋友可以參考下
    2014-10-10
  • .NET?Core使用C#掃描并讀取圖片中的文字

    .NET?Core使用C#掃描并讀取圖片中的文字

    本文詳細(xì)講解了.NET?Core使用C#掃描并讀取圖片中的文字,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • C# 封裝HtmlHelper組件:BootstrapHelper

    C# 封裝HtmlHelper組件:BootstrapHelper

    這篇文章主要介紹了C# 封裝HtmlHelper組件之BootstrapHelper 的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • C#通過(guò)標(biāo)簽軟件Bartender的ZPL命令打印條碼

    C#通過(guò)標(biāo)簽軟件Bartender的ZPL命令打印條碼

    這篇文章介紹了C#通過(guò)標(biāo)簽軟件Bartender的ZPL命令打印條碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01

最新評(píng)論