为了账号安全,请及时绑定邮箱和手机立即绑定

无法进行类型转换

public static void main(String[] args) {

// TODO Auto-generated method stub

// Animal obj1 = new Animal();

// Animal obj2 = new Dog();

// Animal obj3 = new Cat();

// //Dog obj3 = new Animal();出错,不能用子类的引用指向父类的对象

// obj1.eat();

// obj2.eat();

// obj3.eat();

//obj2.bite();//出错,父类引用指向的子类对象只能调用重写和继承的方法,不能引用子类独有的方法

Dog dog = new Dog();

Animal animal = dog;//自动类型提升  向上类型转换

Dog dog2 = (Dog)animal;

Cat cat = new Cat();

if(animal instanceof Cat){

Cat cat2 = (Cat)animal;//因为最初创建的空间为Dog类型的空,故无法在其中实现Cat类型的转换

}else{

System.out.println("无法进行类型转换");

}

}

但是我在老师得代码中又新建了一个Cat类型的空间,为什么还是无法进行转换

正在回答

2 回答

animal 没有指向 cat。。所以 animal instanceof Cat  还是 false,所以无法进行转换

1 回复 有任何疑惑可以回复我~
#1

霸气小肆毛

创建的Cat型并没有改变animal指向Dog类型的这个问题,所以结果还是无法进行转换
2019-02-21 回复 有任何疑惑可以回复我~

老师只是讲了一种避免类型转换的安全性问题,的判断

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530696    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

无法进行类型转换

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信