SCJP題庫第080題
3. interface Fish{}
4. class Perch implements Fish{}
5. class Walleye extends Perch{}
6. class Bluegill{}
7. public class Fisherman {
8. public static void main(String[] args) {
9. Fish f = new Walleye();
10. Walleye w = new Walleye()
11. Bluegill b = new Bluegill();
12. if(f instanceof Perch) System.out.print("f-p ");
13. if(w instanceof Fish) System.out.print("w-f ");
14. if(b instanceof Fish) System.out.print("b-f ");
15. }
16.}
What is the result?
A. w-f
B. f-p w-f
C. w-f b-f
D. f-p w-f b-f
E. Compilation fails.
F. An exception is thrown at runtime.
Ans: B
解說:
f instanceof Perch是判斷f所指向的物件型態是否為Perch, f是指向Walleye物件,Walleye繼承Perch,所以12行if為true
w instanceof Fish是true,w是指向Walleye物件,Walleye繼承Perch,Perch實作Fish,所以Walleye也是Fish的型態
Bluegill類別與Fish沒有任何繼承關聯,所以b instanceof Fish為false
Comments