.net 协变性与逆变性
前提条件:引用类型(指针间的游戏)
协变性:成员类型是要求类型的子类(派生类)。
例如:方法的返回值,如果定义要求返回的是Object,我们可以返回String,这个变化是被允许的。
逆变性:成员类型是要求类型的基类(父类)。
例如:方法的参数类型是 FileStream,我们可以传递一个 Stream,这个变化是被允许的。
前提条件:引用类型(指针间的游戏)
协变性:成员类型是要求类型的子类(派生类)。
例如:方法的返回值,如果定义要求返回的是Object,我们可以返回String,这个变化是被允许的。
逆变性:成员类型是要求类型的基类(父类)。
例如:方法的参数类型是 FileStream,我们可以传递一个 Stream,这个变化是被允许的。