Ковариантность
Ковариантность — это сохранение иерархии наследования исходных типов в производных типах в том же порядке.
Например, если тип Кошка наследуется от типа Животное, то естественно полагать, что массив Массив<Кошка> будет потомком массива Массив<Животное>. Действительно, «список из пяти кошек» — это частный случай «списка из пяти животных».
В таком случае говорят, что тип Массив<T> ковариантен своему параметру-типу T.