1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
子类转父类可以成功
比如把子类物理攻击英雄转换成英雄,没毛病
父类转子类,maybe
比如,英雄强行转换后成为物理攻击英雄
但是16 17行,英雄成为辅助后,你不能通过强行转换成为AD
其实这个时候已经不是父与子的关系了
这也是没有继承关系的类转换一定会失败
比如AD与AP的转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
还有类转换成接口
比如
package
charactor;
public
class
Hero {
public
String name;
protected
float
hp;
public
static
void
main(String[] args) {
ADHero ad =
new
ADHero();
AD adi = ad;
}
因为ADHero这个类里面肯定是有AD这个接口,相当于从属包含关系的转换,只要你有,我遍历找到拿来给则个接口adi就可以了
也有点类似父转子(从属包含)
ADHero ad =
new
ADHero();
AD adi = ad;
ADHero adHero = (ADHero) adi;
ADAPHero adapHero = (ADAPHero) adi;
只有最后转换会失败,前面的都好想,就是父转子子转父一样一样的
}
instanceof Hero 判断一个引用所指向的对象,是否是Hero类型,或者Hero的子类