3、考虑下面的类: 
  1. class Test { 
  2. void test(int i) { 
  3.   System.out.println(“I am an int.”); 
  4. } 
  5. void test(String s) { 
  6.   System.out.println(“I am a string.”); 
  7. } 
  8. 
  9. public static void main(String args[]) { 
  10. Test t=new Test(); 
  11. char ch=“y”; 
  12. t.test(ch); 
  13. } 
  14. } 
  下列哪一个结论是正确的
A)第5行不能通过编译,因为void方法不能被重载。
B)第12行不能通过编译,因为没有将一个将char类型作为参数的test() 方法。
C)代码不能通过编译但是会在第12行抛出异常。
D)代码能通过编译并会产生如下输出:I am an int. 
E)代码能通过编译并会产生如下输出:I am a String. 我怎么觉得没有一个是正确的呢,请高手回答,谢谢!

解决方案 »

  1.   

    A  两个void test方法会报错
      

  2.   

    亲手试了一下,在11行双引号会不能通过编译。若改成单引号的话,可以通过编译,并输出I am an int.
      

  3.   

    报错应该在11行吧。  char ch=“y”;
    A) 方法名相同,参数不同 ,可以重载
    B) char 是4个字节 会转换成4个字节的int 
      

  4.   

    char 类型要单引号~!改后,输出I am an int.
      

  5.   

    11行是明显错了嘛,char 会自动转成int的。