我想知道c#中父子实例之间的关系。
假设您有两个类Base和Derived:
Base b = new Base()
Derived d = new Derived()
Derived db = new Base()
Base bd = new Derived()
那么上面的对象类型是什么意思
请建议我感到困惑。
答案 0 :(得分:1)
假设Base实际上是Derived ....的基类。
第1行包含基类的实例。
第2行包含Derived类的实例。
这些都是“标准”变量,其中变量类型与它包含的实例完全匹配。
第4行是派生类的实例,但仅限于访问基类方法。可以将其视为派生类的略微受限制的视图。
第3行应该产生编译错误。您不能将基类的实例放入更具限制性的类型的变量中。可以这样想“所有的狗(衍生类)都是动物(基类),但不是所有的动物都是狗。