【发布时间】:2020-02-04 13:42:19
【问题描述】:
我知道这不是一个好主意,原因有很多,但如果我有类似的情况:
Dog s = new ShihTzu();
s.beCute();
Error: line 2 - cannot find symbol - method beCute()
((ShihTzu) s).beCute();
It's adorable!
在与Dog s 相同的范围内,我可以将变量名称s 永久重新转换为ShihTzu 类型吗?
还是完全不可能?一旦一个变量被定义为一个类型,那么,在它当前的作用域中,就没有办法改变它了吗?
【问题讨论】:
-
你为什么要这样做?
-
不确定这是否是您所追求的,但您可以声明另一个变量
ShihTzu x = (ShihTzu) s;。 -
"一旦一个变量被定义为一个类型,那么,在它的当前范围内,就没有办法改变它了?" 准确的说。
-
@Sweeper - 是的,我知道,但我有兴趣重新使用变量名。
-
@jsheeran - 我不是真的,我只是好奇编译器是否会以任何方式允许它。更多只是好奇心,而不是现实世界的使用。 :)