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条)

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?