javaのサンプルプログラムで勉強中です。
継承関係を持つクラスのキャストでコンパイルエラーが出ることがありますが、同じ事をやっていてもキャストの仕方によってコンパイルエラーになる時とならない時があるのは何故でしょうか?
例えば以下の継承関係を持つクラスがあるとして、Sub_AクラスのインスタンスをSub_Bクラスに代入しているのは変わらないのに、コンパイルエラーにならない場合があるのはどういう仕組みなんでしょう?
<継承関係>
lang
1Sub_A extends SupperClazz 2Sub_B extends SupperClazz
1.コンパイルエラーになる書き方
lang
1Sub_A sub_a = new Sub_A(); 2Sub_B sub_b = (Sub_B)sub_a; 3
2.コンパイルエラーにならない書き方
lang
1Sub_A sub_a = new Sub_A(); 2SupperClazz supper = sub_a; 3Sub_B sub_b = (Sub_B)supper;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。