Sun認定Java資格 実用情報 2 【SJC-P用】at PROG
Sun認定Java資格 実用情報 2 【SJC-P用】 - 暇つぶし2ch621:仕様書無しさん
04/12/07 03:12:43
シルバー本のP108の型変換の問題が分からないので、どなたか
教えてください。
■以下のプログラムをコンパイルし、実行しようとすると
どうなりますか?正しいものを選びなさい。
1: class Super{}
2: class Sub extends Super{
3:    void meth(){ System.out.println("meth"); }
4: }
5: 
6: class Sample6_4_1{
7: public static void main(String[] args){
8:      Super[] sps = { new Sub(), new Sub(), new Sub()};
9:      Sub[] sbs = (Sub[])sps;
10:      for(int i = 0; i < sbs.length; i++){
11:         if(sbs[i] instanceof Sub)
12:            sbs[i].meth();
13:      }
14: }
15: }
A 9行目でコンパイルエラー
B  11行目でコンパイルエラー
C コンパイルできるが実行時に例外がスローされる。
D コンパイルでき、実行すると、methが3回出力される。
答えはC。
【解説】
spsの要素のオブジェクトの型はSubだが、sps自身の型はSuper[]である。
したがって、9行目のキャストでコンパイルは可能になるが、実行時
にはここで例外が発生する。

私はDだと思ったのですが、なぜCなのでしょうか??
お願いします!



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch