JavaプログラマBronze SE 7/8より
class A {}
class B extends A {}
class Test {
public static void main(String[] args){
A a = new A();
B b = (B)a;
}
}
このコードのコンパイル結果を求める問題で、回答が実行時エラーだったのですが、解説を読んでもいまいち理解できません。
継承により、キャストできないなどのルールがあるのでしょうか?
解説としては、
BクラスAクラスを継承しています。したがって6行目はコンパイルに成功しますが、a変数に代入しているのは5行目のAクラスのオブジェクトです。したがって実行時にエラーが発生します
とあります
回答2件
あなたの回答
tips
プレビュー