当我运行这个程序时,为什么它会调用用字符串参数重载的方法。
public class StaticBindTest {
public static void main(String args[]) {
StaticBindTest et = new StaticBindTest();
et.sort(null);
}
//overloaded method
public void sort(Object c){
System.out.println("Inside Collection sort method");
}
//another overloaded method
public void sort(String hs){
System.out.println("Inside HashSet sort method");
}
}
如果我将我的方法重写为
public void sort(String hs){
if(hs instanceof String)
System.out.println("Inside HashSet sort method");
}
它将显示空白控制台,这意味着它不是 String 的实例,那么为什么它以这种方式调用呢?