Covariance And Contravariance

Introduction

Invariant

Not changing

Covariant (out generic modifier; derived class can go with the base class)

ContraVariant (in generic modifier; base class can be used when derived clas is expected)