在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#中实现多态的基本方法。通过使用基类类型的变量引用子类对象,我们可以调用子类中重写的方法,从而实现多态。