黑马程序员技术交流社区

标题: 关于重载参数的问题 [打印本页]

作者: lucy198921    时间: 2013-3-24 12:03
标题: 关于重载参数的问题
本帖最后由 lucy198921 于 2013-3-24 14:01 编辑

package com.itheima;
public class Test3 {  

    public void myMethod(String str) {  
        System.err.println("string");  
    }  

    public void myMethod(Object obj) {  
        System.err.println("object");  
    }  

    public static void main(String[] args) {  
        Test3 t = new Test3();  
        t.myMethod( null );  //传入参数null
    }  
}  


这里我在方法中传入null,为什么会找 public void myMethod(String str) 这个方法?

作者: 刘凯    时间: 2013-3-24 12:12
你把上边的  
public void myMethod(String str) {  
        System.err.println("string");  
    }  
的方法注释了 就会走下边这个了  
还可以 传入个非字符串 就会走Object了

所以我理解的是  它是先找比较小的类  也就是子类中符合要求的  如果子类没有符合要求的 就向上找



   public void myMethod(int str) {  
        System.err.println("int");  
    }  
    public void myMethod(Integer str) {  
        System.err.println("Integer");  
    }  
用上边这俩做实验  出入1 然后注释int 的 他就会去找Ineger  如果不注释 他就会找int
作者: 王晓楠    时间: 2013-3-24 12:28
因为多态吧。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2