程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#應用虛擬辦法完成多態

C#應用虛擬辦法完成多態

編輯:C#入門知識

C#應用虛擬辦法完成多態。本站提示廣大學習愛好者:(C#應用虛擬辦法完成多態)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用虛擬辦法完成多態正文


本文實例講述了C#應用虛擬辦法完成多態。分享給年夜家供年夜家參考。詳細剖析以下:

我們看一個例子,假如有一個植物類,類頂用辦法cry()描寫植物的啼聲,分歧的植物的啼聲是紛歧樣的。依據繼續的特點,把類中公共部門的內容放在父類中,那末cry()辦法就應當放在父類中,依據如許的思緒編寫法式以下:

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();
}
}

運轉後發明狗和貓的啼聲是雷同的,都是挪用了父類Cry()辦法。如今願望在統一個辦法Cry()可以或許表現出分歧植物的啼聲,那末在子類就應當從新描寫Cry(),也就是重寫Cry()辦法。

重寫辦法就是修正它的完成,或許在派生類中對它停止重寫。在父類頂用virtual 症結字聲明的辦法在子類中可以重寫,就是虛擬辦法。虛擬辦法的語法以下:

拜訪潤飾符 virtual 前往類型 辦法名()
{
//辦法體
}

在父類中聲明的虛擬辦法,在子類中重寫時用override症結字,就是將virtual症結字改成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();
}
}

留意:父類辦法的拜訪級別和子類重寫辦法的拜訪級別雷同,即它們應當有雷同的拜訪潤飾符。
例如:

public virtual void Hello()

不克不及重寫為:

private override void Hello()

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved