在C#中,可以使用Activator.CreateInstance
方法来创建实例,从而实现多态的场景。下面是一个简单的示例:
using System;
public class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal speaks.");
}
}
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Dog barks.");
}
}
public class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("Cat meows.");
}
}
class Program
{
static void Main()
{
Animal animal1 = (Animal)Activator.CreateInstance(typeof(Dog));
animal1.Speak(); // Output: Dog barks
Animal animal2 = (Animal)Activator.CreateInstance(typeof(Cat));
animal2.Speak(); // Output: Cat meows
}
}
在这个示例中,通过Activator.CreateInstance
方法分别创建了Dog
和Cat
的实例,并且将它们都存储在Animal
类型的变量中。然后调用Speak
方法时,会根据实际的对象类型来执行相应的方法,实现了多态。