c#中不同类型的子-父类层次结构实例

本文关键字:父类 层次结构 实例 同类型 | 更新日期: 2023-09-27 17:50:56

我想知道c#中父/子实例之间的关系。

假设你有两个类Base和Derived:

Base b = new Base() Derived d = new Derived() Derived db = new Base() Base bd = new Derived()

那么上述对象类型的意义是什么

c#中不同类型的子-父类层次结构实例

假设Base实际上是Derived的基类....

第1行包含基类的一个实例。

第2行包含派生类的一个实例。

这两个都是"标准"变量,变量类型与它所包含的实例完全匹配。

第4行是派生类的实例,但仅限于访问基类方法。可以把它看作是派生类的一个稍微受限的视图。

第3行应该产生一个编译错误。不能将基类的实例放在限制更严格的类型的变量中。可以这样想:"所有的狗(派生类)都是动物(基类),但不是所有的动物都是狗。"