Java SE7 Silver の資格を目指し勉強中です。
分からない点は
・もしクラスBをインスタンス化していた場合は実行できるのか(例外が発生しないのか)
です。
1 class A{
2 void hellow(){
3 System.out.println("A");
4 }
5 }
1 class B extends A{
2 void hello(){
3 System.out.println("B");
4 }
5 }
これらのクラスを利用する以下のプログラムを実行したときの結果は?
1 public class Main{
2 public static void main(String[] args){
3 A a = new A();
4 B b = (B) a;
5 b.hello();
6 }
7 }
回答は「実行時に例外がスローされる」です。
これは、クラスBがstaticクラスではなく、インスタンスクラスであり、クラスBをインスタンス化していない場合は、スローされるのでしょうか。
もし、クラスBを事前にインスタンス化していたら、4行目でキャストをしているので、
「B」がコンソールに表示できるのではと思いました。
見当違いな質問で分かりにくいかもしれませんが、返信を頂けたら嬉しいです。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。