java 的小问题
很久没用java,看见一道题,不太明白,熟悉java 请帮我解释一下为什么,谢谢3. class A { }
4. class B extends A { }
5. public class ComingThru {
6. static String s = "-";
7. public static void main(String[] args) {
8. A[] aa = new A;
9. B[] ba = new B;
10. sifter(aa);
11. sifter(ba);
12. sifter(7);
13. System.out.println(s);
14. }
15. static void sifter(A[]... a2) { s += "1"; }
16. static void sifter(B[]... b1) { s += "2"; }
17. static void sifter(B[] b1) { s += "3"; }
18. static void sifter(Object o) { s += "4"; }
19. }
What is the result?
A. -124
B. -134
C. -424
D. -434
E. -444
F. Compilation fails 本帖最后由 sdong 于 2011-8-10 13:45 编辑
-434
> 10. sifter(aa);
Typ A[] ist nicht A[]..., daher wird sifter(Object o) aufgerufen. (4)
> 11. sifter(ba);
Eindeutiger Typ B[], daher wird sifter(B[] b1) aufgerufen. (3)
> 12. sifter(7);
ab Java 5 ist primitiver Typ autom. ein Objekttyp beim Aufruf, daher wird sifter(Object o) aufgerufen. (4)
页:
[1]