最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

訪問修飾符 virtual 返回類型 方法名()
{
//方法體
}

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

我們修改上面的代碼:

using System;
class Anmial
{
  public virtual void Cry()
{
Console.WriteLine("這是動物的叫聲");
}
}
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();
}
}

注意:父類方法的訪問級別和子類重寫方法的訪問級別相同,即它們應(yīng)該有相同的訪問修飾符。
例如:

public virtual void Hello()

不能重寫為:

private override void Hello()

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

相關(guān)文章

  • Question:基于C#連續(xù)賦值的面試題介紹

    Question:基于C#連續(xù)賦值的面試題介紹

    本篇文章是關(guān)于C#中連續(xù)賦值的面試題介紹,需要的朋友參考下
    2013-05-05
  • 使用C#實現(xiàn)一個簡單的繪圖工具

    使用C#實現(xiàn)一個簡單的繪圖工具

    這篇文章主要為大家詳細介紹了如何使用C#開發(fā)的簡單繪圖工具,可以將簽名簡單繪圖后的效果以圖片的形式導(dǎo)出,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • C#使用AnimateWindow()實現(xiàn)動畫窗體的方法

    C#使用AnimateWindow()實現(xiàn)動畫窗體的方法

    用API函數(shù)AnimateWindow函數(shù)來實現(xiàn)窗體的動畫效果,在C#中,你可以使用P/Invoke技術(shù)調(diào)用Windows API中的AnimateWindow函數(shù)來實現(xiàn)動畫窗體,本文就給大家介紹了C#使用AnimateWindow()實現(xiàn)動畫窗體的方法,感興趣的朋友可以參考下
    2024-04-04
  • winform去掉右上角關(guān)閉按鈕的方法

    winform去掉右上角關(guān)閉按鈕的方法

    這篇文章主要介紹了winform去掉右上角關(guān)閉按鈕的方法,需要的朋友可以參考下
    2014-02-02
  • C# 實現(xiàn)QQ式截圖功能實例代碼

    C# 實現(xiàn)QQ式截圖功能實例代碼

    本篇文章主要介紹了C# 實現(xiàn)QQ式截圖功能實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 詳解Unity中的ShaderGraph入門使用教程

    詳解Unity中的ShaderGraph入門使用教程

    Unity2018版本之后推出了一個可編程渲染管線工具ShaderGraph,讓我們可以通過可視化界面拖拽來實現(xiàn)著色器的創(chuàng)建和編輯,今天重點給大家介紹Unity中的ShaderGraph入門使用教程,需要的朋友參考下吧
    2021-07-07
  • Unity Shader實現(xiàn)裁切效果

    Unity Shader實現(xiàn)裁切效果

    這篇文章主要為大家詳細介紹了Unity Shader實現(xiàn)裁切效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • WPF實現(xiàn)圓形進度條的示例代碼

    WPF實現(xiàn)圓形進度條的示例代碼

    這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)圓形的進度條,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2023-01-01
  • C#中使用Spire.XLS來操作Excel數(shù)據(jù)的實現(xiàn)

    C#中使用Spire.XLS來操作Excel數(shù)據(jù)的實現(xiàn)

    本文主要介紹了C#中使用Spire.XLS來操作Excel數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 在C#中如何使用JSON

    在C#中如何使用JSON

    JSON(JavaScript?Object?Notation)是一種輕量級的數(shù)據(jù)交換格式,具有易讀、易解析的特點,廣泛用于API數(shù)據(jù)交互、配置文件等,本文介紹在C#中如何使用JSON,感興趣的朋友跟隨小編一起看看吧
    2024-09-09

最新評論

金门县| 扬州市| 绥江县| 常熟市| 波密县| 晴隆县| 衡阳县| 铜鼓县| 丁青县| 元江| 时尚| 中西区| 射洪县| 荃湾区| 长宁县| 西藏| 射阳县| 南乐县| 罗源县| 通榆县| 遵义市| 福海县| 云和县| 抚顺市| 沈阳市| 盐津县| 兴义市| 华池县| 额尔古纳市| 金阳县| 景泰县| 上栗县| 利辛县| 洪雅县| 青阳县| 富宁县| 庄浪县| 惠水县| 广元市| 富川| 饶阳县|