在C#中,多態是通過繼承和接口實現的。這里有一個簡單的例子來說明如何使用多態:
首先,我們創建一個基類Animal
,它有一個方法Speak()
:
public class Animal
{
public virtual void Speak()
{
Console.WriteLine("The animal makes a sound");
}
}
然后,我們創建兩個繼承自Animal
的子類:Dog
和Cat
。這兩個子類重寫了Speak()
方法,以輸出各自的聲音:
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("The dog barks");
}
}
public class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("The cat meows");
}
}
現在,我們可以創建一個Animal
類型的變量,并將其指向Dog
或Cat
對象。當我們調用Speak()
方法時,將根據對象的實際類型執行相應的實現:
Animal myAnimal = new Dog();
myAnimal.Speak(); // 輸出 "The dog barks"
myAnimal = new Cat();
myAnimal.Speak(); // 輸出 "The cat meows"
這就是C#中實現多態的基本方法。通過使用基類類型的變量引用子類對象,我們可以調用子類中重寫的方法,從而實現多態。