Javaで例外になる理由について(問題集のとある問題)

Javaの問題集を解いていた時のとある問題なんですが、

public interface A{ //any code }
public class B implements A{ //any code }
public class C extends B{ //any code }
public class Main{ public static void main (String[] args){ B b = new B(); A a = b; C c = (C) a; } }

というコードがあった時に、結果としてはMainクラスの5行目で例外がスルーされるという結果なのですが、その理由がわかりません。
Mainクラスの4行目でアップキャストが自動で行われて、5行目で明示的にダウンキャストしているのでコンパイルエラーにならないのまでは分かります。
ただ、その後の回答では
「プログラムを実行すると実際に動作しているのはB型のインスタンスであり、C型としての差分を持ちません。そのため5行目で実行時に例外が発生します。」と書いてあります。
--実際に動作しているのはB型のインスタンスであり、C型としての差分を持たない--
というのはどういう意味なのでしょうか?初歩的な問題かもしれませんが教えていただきたいです。

コメントを投稿

0 コメント