c#

c# createinstance用于多态的场景

小樊
92
2024-07-26 01:19:11
栏目: 编程语言

在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方法分别创建了DogCat的实例,并且将它们都存储在Animal类型的变量中。然后调用Speak方法时,会根据实际的对象类型来执行相应的方法,实现了多态。

0
看了该问题的人还看了