论坛首页 综合技术论坛

一道简单的Java题

浏览 19958 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-06  
shootyou 写道
tiandizhiguai 写道
正如sgq0085所说的那样:
public void myMethod(String s) {

       System.out.println("My String");

   }

  

   public void myMehtod(Integer i){

   System.out.println("My Integer");

   }
能正确编译,也能正常运行,而且始终执行String参数的方法,这又是为什么呢?



差点被忽悠了。。。你知道为什么吗?那是因为他把myMehtod拼错了。。。拼对的情况下是不会通过的。。。

我擦。犯这种错误。太不应该了。。 上学那会,这叫非智力性错误,每次考试,老师都会强调不要犯非智力错误。
0 请登录后投票
   发表时间:2012-03-06  
编译都没法过,he method myMethod(Object) is ambiguous .....
0 请登录后投票
   发表时间:2012-03-06  
编译错误吧。
0 请登录后投票
   发表时间:2012-03-09  
如果回答报错的人,以后就别来java eye了,说明你的基础为0.  一个方法接受null为再正常不过的事了,睁着眼睛说瞎话。
0 请登录后投票
   发表时间:2012-03-09  
我想JVM设计者应该是从最小类型到大类型匹配设计的,只要这样才是符合需求的。
例如:三个方法method(int i),method(Integer i), method(Object i),如果你这样调用method(100),编译器都会调用到method(Object i)的方法,那么你告诉我你用哪种方式才能调用到method(int i)呢?  不妨多问两个为什么,所以我说上面回答报错的人,JAVA基础为零呢! 
0 请登录后投票
   发表时间:2012-03-09  
qiang106 写道
Object比String更泛,也就是说String比Object更精准,
优先调用更精准的重载

一语中的
0 请登录后投票
   发表时间:2012-03-09  
孔乙己~~
0 请登录后投票
   发表时间:2012-03-10  
keke8614 写道
如果回答报错的人,以后就别来java eye了,说明你的基础为0.  一个方法接受null为再正常不过的事了,睁着眼睛说瞎话。

你看了扩展的那个能过吗?应该把前文都看完,太不淡定了....
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics