[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 10:59 / Filesize : 247 KB / Number-of Response : 982
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Sun認定Java資格 実用情報 2 【SJC-P用】



621 名前:仕様書無しさん [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なのでしょうか??
お願いします!







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef