当参数是文字空值时,如何选择重载方法?
我在测验中遇到了这个问题,
public class MoneyCalc { public void method(Object o) { System.out.println("Object Verion"); } public void method(String s) { System.out.println("String Version"); } public static void main(String args[]) { MoneyCalc question = new MoneyCalc(); question.method(null); }}
该程序的输出是“String Version”。但是我无法理解为什么将null传递给重载方法会选择字符串版本。null是一个String变量,指向什么?
但是当代码更改为时,
public class MoneyCalc { public void method(StringBuffer sb) { System.out.println("StringBuffer Verion"); } public void method(String s) { System.out.println("String Version"); } public static void main(String args[]) { MoneyCalc question = new MoneyCalc(); question.method(null); }}
它给出了一个编译错误,说“方法方法(StringBuffer)对于MoneyCalc类型是不明确的”
哈士奇WWW
SMILET
呼啦一阵风
相关分类