小编bob*_*rry的帖子

Java - 你如何向上转换和向下转换同一个对象

假设我们有两个类。

class Animal{/*code*/}
class Cat extends Animal{/*code*/}
Run Code Online (Sandbox Code Playgroud)

从我所学到的,向上和向下的工作是这样的

Cat c1 = new Cat();
Animal a = c1; //Upcasted to Animal
Cat c2 = (cat) a; //Downcasted back to Cat
Run Code Online (Sandbox Code Playgroud)

但唯一的问题是,每次向上或向下转换时,都会创建一个新对象。无论如何,是否可以将对象从 Cat 向上和向下从 Cat 转换为 Animal 并返回到 Cat,以便只投射一个对象?例如

Cat c --> Animal c --> Cat c //Upcasted to Animal, and downcasted back to Cat, but done all on one object.
Run Code Online (Sandbox Code Playgroud)

谢谢!

java oop casting object

2
推荐指数
1
解决办法
176
查看次数

标签 统计

casting ×1

java ×1

object ×1

oop ×1