泛型和抽象类

tec*_*mad 0 c#

我已经实现了Generices如下:

  public class GenericAnimal<T> 
  {
    public int legs;
    public void Walk()
    {
        Console.WriteLine("Animals Walk....");
    }
}

public class Dog 
{
    public void Bark()
    {
        Console.WriteLine("Barking....");
    }
}

public class Cat 
{
    public void Mew()
    {
        Console.WriteLine("Mewing....");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用该类如下:

        GenericAnimal<Dog> dogObj = new GenericAnimal<Dog>();
        GenericAnimal<Cat> catObj = new GenericAnimal<Cat>(); 
Run Code Online (Sandbox Code Playgroud)

在dogObj和catObj中,我都得到了"Walk"方法.我可以用抽象类做这件事.那么使用Generics而不是Abstract类有什么额外的好处呢?

Nik*_*sev 5

在你的情况下,没有.在您希望代码可以使用不同类型重用的场景中,泛型是有意义的.在GenericAnimal<T>,你没有做任何事情T.