问答详情
源自:10-2 多态中的引用类型转换

向下转型疑问

向下转型成功的前提,不就是先进行向上转型吗?例如:Animal animal=new Cat();然后Cat cat=(Cat)animal;才能成功。而同一个父类引用无法调用其他子类对象,即:Animal animal=new Dog();不成立,所以Dog dog=(Dog)animal自然也不存在了。这样的话还有必要先行用instanceof进行判断吗?

提问者:KABOKUO 2018-06-22 11:49

个回答

  • 雨过云舒
    2018-08-03 15:27:18

    Animal animal=new Dog();这样不就是父类的引用指向子类的对象么?这是成立的啊。

    如果是Dog dog = new Animal();这样是子类的引用指向父类的对象,这个是不可以的。

  • 微微去
    2018-06-24 11:09:50

    instanceof 相当于做一个check,减少程序执行的出错率