基类不能转成派生类,因为派生类中的一些属性基类中可能没有,所以强制转换也会异常。
只要他继承了其他的类,那么他就可以说是某个类的派生类。
一个类是派生类和基类并不是绝对的,它可以同时为A的派生类,也可以是B的父类。
就像一个人在生活中可以扮演不同的角色。
通常情况下是不能转的。除非你重载类型转换运算符。
具体细节参考Conversion Operators。
当然不能转换了,你只能用派生类向基类转换,不能反过来。
类别转换只能基于"is-a"关系,设
苹果 is-a 水果 所以你可以在水果摊上买到苹果
如果是"is-not-a"关系,则转换不成立
你在水果摊前跟老板说,我要买水果。看他会给你苹果还是橘子。
只能从派生类调用基类方法/字段,而不能转换的。
如果你硬想过一把转换,那就用重载类型转换运算符吧,费时费力。或者用接口实现吧。不过那你还派生做什么?
强制类型转换