【发布时间】:2015-06-08 18:14:08
【问题描述】:
我在库中定义了 A 类:
public final class A {blah}
然后我想在某个地方使用新的 B 类来替换它:
A a = new A();
A a = (A) new B();
B 拥有 A 中的所有方法和成员,所以这样做实际上是安全的,我可以在 C++ 中这样做。但是对于 Java,这种转换会导致异常。那么在Java中是否有任何解决方法或黑客行为? 另外,有没有办法在不接触虚拟机的情况下破解?
【问题讨论】:
-
投射时遇到了哪个异常?
-
在java中你会得到不兼容的类型转换编译器错误,因为
B不扩展A(但是它不能扩展最终类)。 -
不行不行不行。
-
没有任何其他信息,这是不可能的。