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