c#中,基类如何转换为派生类?

2024-12-26 12:44:28
推荐回答(5个)
回答1:

基类不能转成派生类,因为派生类中的一些属性基类中可能没有,所以强制转换也会异常。

回答2:

只要他继承了其他的类,那么他就可以说是某个类的派生类。

一个类是派生类和基类并不是绝对的,它可以同时为A的派生类,也可以是B的父类。
就像一个人在生活中可以扮演不同的角色。

回答3:

通常情况下是不能转的。除非你重载类型转换运算符。
具体细节参考Conversion Operators。

回答4:

当然不能转换了,你只能用派生类向基类转换,不能反过来。

类别转换只能基于"is-a"关系,设

苹果 is-a 水果 所以你可以在水果摊上买到苹果

如果是"is-not-a"关系,则转换不成立

你在水果摊前跟老板说,我要买水果。看他会给你苹果还是橘子。

只能从派生类调用基类方法/字段,而不能转换的。

如果你硬想过一把转换,那就用重载类型转换运算符吧,费时费力。或者用接口实现吧。不过那你还派生做什么?

回答5:

强制类型转换