程序如下:
public class Test
{
public void myMethod(Object o)
{
System.out.println("My Object");
}
public void myMethod(String s)
{
System.out.println("My String");
} public static void main(String args[])
{
Test t = new Test();
t.myMethod(null);
}
}
结果是“My String”.为什么会有这个结果?
如果将参数是String的方法注释掉,打印结果为“My Object”,这又是为什么?
public class Test
{
public void myMethod(Object o)
{
System.out.println("My Object");
}
public void myMethod(String s)
{
System.out.println("My String");
} public static void main(String args[])
{
Test t = new Test();
t.myMethod(null);
}
}
结果是“My String”.为什么会有这个结果?
如果将参数是String的方法注释掉,打印结果为“My Object”,这又是为什么?
public void myMethod()
{
System.out.println("null");
}
这样你就可以不用给它值了!
public void myMethod(Integer i)
{
System.out.println("Integer");
}
方法, 那你的程序将不能编译通过, 因为编译器无法选择Integer还是String来进行匹配.最后, 请谨慎地使用重载机制, 一般情况下都请不要使用... 退一步讲, 如果你一定要使用, 那就千万不要编写具有相同参数个数的重载方法. 不然, 程序出现莫名其妙的问题, 就有得你检查和调
试了.