为什么我的代码中出现"ClassCastException"?

1 java

interface Foo {}
class Alpha implements Foo {}
class Beta extends Alpha {}

class Delta extends Beta {
    public static void main( String[] args ) {
        Beta x = new Beta();
        Foo f=(Delta) x; 
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么ClassCastException会在这里发生?

JNL*_*JNL 6

刚用简单英语写了你的代码:

Alpha IS-A Foo

Beta IS-A Alpha

Delta IS-A Beta

注意:

Beta IS-NOT A Delta

改变这里的线;

Foo f = (Delta) x; 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.如果您有任何疑问,请告诉我.