在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
方法時,會根據實際的對象類型來執行相應的方法,實現了多態。