为什么强转失败了?

当我们想将父类类型对象转为子类类型对象时是需要满足一定条件的!

条件:只有我们的父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象。也就是说父类类型对象引用实际上指向的是子类对象,这种情况下才能将父类类型对象的引用强转为子类类型对象的引用

1.例子 :这是可以的

Animal animal = new Dog();
Dog dog = (Dog) animal;

2.例子:这是不可以的,会抛出异常

Animal animal = new Animal()
Dog dog =(Dog) animal;

3.例子: 如果需要兼容两种情况

if(animal instanof Dog){
  Dog dog = (Dog) animal;
}else{
  Animal animal = animal;
}
posted @ 2021-10-12 20:19  rongbu2  阅读(161)  评论(0)    收藏  举报