[問題] 關於SCJP 第77題的疑問

看板java作者時間10年前 (2013/08/23 14:32), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
Given: 11. public static void main(String[] args) { 12. Object obj = new int{1, 2, 3}; 13. int[] someArray = (int[])obj; 14. for (int i: someArray) System.out.print(i + " "); 15. } What is the result? A. 1 2 3 B. Compilation fails because of an error in line 12. C. Compilation fails because of an error in line 13. D. Compilation fails because of an error in line 14. E. A ClassCastException is thrown at runtime. 答案:A 我的疑點在第13行, 任何物件都是繼承 Object物件 obj宣告的類型為 Object 要把Object 向下轉型成 int[] 類型, 應該會產生 ClassCastException 可是卻編譯成功?? 想請問版上高手我錯誤的點是在哪邊?? 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.105.196

08/23 14:33, , 1F
實體是new的那個 Object只是接起來
08/23 14:33, 1F

08/23 14:47, , 2F
你只是把他當成 Object,他骨子裡還是 int[]
08/23 14:47, 2F

08/23 14:55, , 3F
感謝樓上兩位大大!!!
08/23 14:55, 3F

08/23 15:41, , 4F
多型
08/23 15:41, 4F

08/27 11:27, , 5F
我第12行要打Object obj = new int[]{1, 2, 3}; 才會過耶
08/27 11:27, 5F

08/27 11:29, , 6F
不然那行會出錯耶
08/27 11:29, 6F

08/27 11:31, , 7F
08/27 11:31, 7F

08/27 11:35, , 8F
XD 應該是原 po 的 typo,你是對的 XDDD
08/27 11:35, 8F
文章代碼(AID): #1I5m7czx (java)