我已完成以下代码
public Class OverLoading {
public void Get(int val, string str)
{
Console.Write("Method with int and string parameter");
}
public void Get(int str, object obj)
{
Console.Write("Method with int and Object parameter");
}
}
当我使用下面提到的代码从Main()调用它时,行“obj.Get(2,null)”总是调用第一个重载类的Get方法,即Get(int val,string str)
static void Main()
{
OverLoading obj = new OverLoading();
obj.Get(2, null);
}
你能否建议,为什么将null转换为字符串而不是反对。
答案 0 :(得分:0)
因为int是Java编程语言的字符串是对象。因此可以将它们设置为null。 原始数据类型不能设置为null。 字节 短 INT 长 浮动 双 布尔 炭
要为它们设置空值,您必须使用相应的包装器
参见: http://docs.oracle.com/javase/tutorial/java/data/strings.html
答案 1 :(得分:0)
因为 String 是 Object 的孩子。 在解析重载方法时,编译器将始终首先查看子类型参数方法。