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()
那么上述对象类型的意义是什么
假设Base实际上是Derived的基类....
第1行包含基类的一个实例。
第2行包含派生类的一个实例。
这两个都是"标准"变量,变量类型与它所包含的实例完全匹配。
第4行是派生类的实例,但仅限于访问基类方法。可以把它看作是派生类的一个稍微受限的视图。
第3行应该产生一个编译错误。不能将基类的实例放在限制更严格的类型的变量中。可以这样想:"所有的狗(派生类)都是动物(基类),但不是所有的动物都是狗。"