myfltinthesky 2009-11-22 20:19
浏览 167
已采纳

关于方法重载的问题

public class overloading {

public  static void  print(String i){
    System.out.println("String i");
}
public static void  print(Object o){
    System.out.println("object o");
}
    /*public static void print(Buffer b){
    System.out.println("buffer b");
}*/

}

public class testloading {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    overloading.print(null);
}

}
当屏蔽print(Buffer b)时,testloading类可以通过编译,可添加print(Buffer b)方法后,testloading类不能通过编译了,为什么,能详解吗?谢谢
[b]问题补充:[/b]
我想zhangyou1010、Heart.X.Raid所说的应该是null没有具体对象,JVM无法指定调用哪个方法,对吗?
可是当只有print(String i)和print(Object o)这两个方法(用任何类型对象替换String参数一样)时,能够通过编译,JVM会调用print(String i)方法。

  • 写回答

5条回答 默认 最新

  • wanghaolovezlq 2009-11-23 21:55
    关注

    只有print(String i)和print(Object o)这两个方法(用任何类型对象替换String参数一样)时,能够通过编译的问题解释:

    因为所有对象 都是默认继承处Object对象啊,

    自然就先定位子类string嘛

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?