同时向下转型和向上转型的目的是什么?

What is the purpose of downcasting and upcasting at the same time?

我有一只 parent class 动物和一只 child class 狗延伸动物。

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

刚学向下转型,请问同时进行向下转型和向上转型的目的是什么?

Dog 是否继承自 Animal?我会假设是的。

回答这个问题 - 这样做没有意义。可以简化如:

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

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