[英]Why does “ClassCastException” occur in my code?
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;
}
}
為什么在這里發生ClassCastException
?
只需用簡單的英語編寫代碼:
oo
Alpha IS-A Foo
Beta IS-A Alpha
台達IS-A Beta
Beta IS-NOT A Delta
在這里更改行;
Foo f = (Delta) x;
希望這可以幫助。 如果您有任何疑問,請告訴我。
您將x
強制轉換為Delta
但x
的類型為Beta
,它是Delta
擴展的,反之亦然。 因此,您的ClassCastException
。
順便說一句, 伽瑪怎么了?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.