【问题标题】:Why we can't instantiate child class object from parent class为什么我们不能从父类实例化子类对象
【发布时间】:2017-03-20 09:21:21
【问题描述】:
ClassA
{

}

ClassB : ClassA
{

}

我可以的

ClassA objA = new ClassB();

但为什么我不能做反向

ClassB objB = new ClassA();

后端到底发生了什么?编译器如何处理这个?

【问题讨论】:

标签: c# oop


【解决方案1】:

因为编译器会自动将派生类转换为基类 - 它只是将其解释为基类的对象,而忽略其他属性。但是要将一个对象强制转换为派生类,它之前必须是该派生类的对象,并且编译器希望您显式定义强制转换。但是,即使您明确定义了强制转换,它也不会起作用,因为该对象从未属于派生类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多