【发布时间】:2011-01-31 05:41:07
【问题描述】:
我正在尝试做类似的事情
class O has a child E
我声明变量
O xyz = new E();
但是如果我调用xyz.method(),我只能调用O类的方法,而不是E类的,所以我可以向下转换它
E xyz2 = (E) xyz;
我的问题是——你能在不声明新变量的情况下做到这一点吗?比如:
O xyz = new E();
xyz = (E) xyz;
现在我可以使用 xyz.method() 来调用 E 的方法
有没有办法在java中做到这一点?
【问题讨论】:
-
正如@Leon 指出的那样,如果您以后(在同一范围内)需要
xyz的类型为E,您永远不会写O xyz = new E(),而是声明正确的类型@987654328 @。但我假设你的真实代码比这个例子更难。
标签: java inheritance object polymorphism downcast