C#中的协变和逆变
这两个都是只能使用在接口和委托上
个人理解:
协变:出参,让基类使用范围变大,将父类/基类当作子类一样使用
--为什么这样规定呢?
我的理解:真正实现的是子类,子类拥有所有的方法,却不能接收父类
逆变:入参,让父类安全地转化为子类
--为什么这样规定呢?
我的理解是:真正实现的是父类,父类无法返回子类,但是可以接收任意子类
这两个都是只能使用在接口和委托上
个人理解:
协变:出参,让基类使用范围变大,将父类/基类当作子类一样使用
--为什么这样规定呢?
我的理解:真正实现的是子类,子类拥有所有的方法,却不能接收父类
逆变:入参,让父类安全地转化为子类
--为什么这样规定呢?
我的理解是:真正实现的是父类,父类无法返回子类,但是可以接收任意子类