你可以在不声明新变量的情况下向下转换java中的对象吗?

kam*_*lot 2 java polymorphism inheritance object downcast

我试图做类似的事情

class O has a child E
Run Code Online (Sandbox Code Playgroud)

我宣布变量

O xyz = new E();
Run Code Online (Sandbox Code Playgroud)

但是如果我调用xyz.method(),我只能调用类O的方法,而不是E的,所以我可以通过

E xyz2 = (E) xyz;
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 你能否在不声明新变量的情况下这样做?就像是:

O xyz = new E();
xyz = (E) xyz; 
Run Code Online (Sandbox Code Playgroud)

现在我可以使用xyz.method()来调用E的方法

有没有办法在java中这样做?

Ara*_*ram 7

是的,你可以垂头丧气

((E)xyz).method();
Run Code Online (Sandbox Code Playgroud)