在C#中,协变(covariance)一词来源于数学中的协方差(co-variance)概念。在数学中,协方差用于衡量两个变量之间的关系。类比到编程语言中的协变,它描述了派生类型与基类类型之间的关系。
在C#中,协变允许将派生类型的对象赋值给基类类型的变量,这意味着派生类型是基类类型的一种"协同变体"。也就是说,派生类型“配合”基类类型,使得基类类型的代码可以接受派生类型的对象。
因此,协变的含义是:通过允许派生类型赋值给基类类型的操作,使得基类类型与派生类型之间形成了一种协同变化的关系,提供了更大的灵活性和多态性。因此,C#中的协变被称为协变。
class Animal { }
class Dog : Animal { }
class Program
{
static void Main()
{
Animal[] animals = new Animal[3];
animals[0] = new Animal();
animals[1] = new Dog(); // 协变:将Dog实例放入Animal数组
foreach (Animal animal in animals)
{
Console.WriteLine(animal.GetType().Name);
}
}
}
标签:派生,C#,协变,Animal,基类,类型
From: https://blog.51cto.com/u_15279888/7907023