SCJP題庫第077題
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.
Ans: A
解說:
此題正常編譯可執行,第12行先用一個父類別型態Object的物件參考指向一個一維的整數陣列
Everything is an object, 這句話代表只要是Object型態的物件參考,就可以指向系統中任一型態的物件,如此題中的obj。
13行,等號的右邊是Object型態的物件參考,等號右邊是父類別(大),指定給子類別時須進行轉型的動作,可進行轉型的基礎是obj所指的物件型態必須是int[]。
Comments