class A {}
interface Wtf{}
A a = new A();
Wtf wtf = (Wtf)a;
Run Code Online (Sandbox Code Playgroud)
是什么原因,为什么编译得很好?也在C#:D
运行它时会得到ClassCastException.
它在编译时没有给出错误的原因是A的子类可能实现Wtf,如下所示:
public class A {
interface Wtf { }
static class B extends A implements Wtf { }
public static void main(String[] args) {
A a = new B();
Wtf wtf = (Wtf) a;
}
}
Run Code Online (Sandbox Code Playgroud)