Java 同时向下和向上投射的目的是什么?

Java 同时向下和向上投射的目的是什么?,java,downcast,Java,Downcast,我有一只母级动物和一只子级狗 Dog dog = new Dog(); Animal animal1 = (Dog) dog; Animal animal2 = (Animal) dog; 我刚刚学习了向下投射,我想问同时进行向下投射和向上投射的目的是什么?狗是否继承了动物?我想是的 为了回答这个问题,没有必要这样做。它可以简化为: Dog dog = new Dog(); Animal animal1 = dog; Animal animal2 = dog; 当变量(animal1或ani

我有一只母级动物和一只子级狗

Dog dog = new Dog();
Animal animal1 = (Dog) dog;
Animal animal2 = (Animal) dog;

我刚刚学习了向下投射,我想问同时进行向下投射和向上投射的目的是什么?

狗是否继承了动物?我想是的

为了回答这个问题,没有必要这样做。它可以简化为:

Dog dog = new Dog();
Animal animal1 = dog;
Animal animal2 = dog;

当变量(
animal1
animal2
)来自类型
Dog
,并且您有一个来自另一类型且
Dog
继承自的对象时,您可能需要向下转换(例如
Animal
)-但请确保该对象确实是
Dog

示例代码在哪里同时进行向下和向上转换?请检查下面的链接代码中的强制转换是不必要的。我不确定您的代码与您的问题有什么关系,但在任何情况下,该代码中的两个显式强制转换都是不必要的。1。这里没有悲观情绪。2.这两个类型转换都没有任何意义。第一个只是维持现状,第二个是多余的。