我知道已经发布了一些与此相同主题相关的问题,但我看到了不同的答案,所以我对哪个答案是正确的感到困惑.
在下面的链接中,人们提到转发不可能 转换/转换基类型为派生类型
在下面的链接中,人们提到只有当派生类是基类downcast和upcast的实例时,才可能进行 向下转换.
我做了一个小实验并使用直接转换在一个迷你项目(C#)上实现了向下转换,例如:DerivedClass dc =(DerivedClass)baseClass,而不检查DerivedClass是否是BaseClass的实例,令我惊讶的是,它正在工作很好,没有任何错误,所以为什么人们说降级是不可能的?
所以我的问题是,转发真的不可能吗?为什么人们似乎对这个话题有不同的答案?毕竟哪一个是真正的答案?有人可以更详细地解释一下吗?
示例代码:
public class Order { }
public class PurchaseOrder : Order { // some new properties here for PurchaseOrder}
public static PurchaseOrder GetOrder()
{
Order order = new Order();
return (PurchaseOrder)order;
}
Run Code Online (Sandbox Code Playgroud)