当参数是文字空值时,如何选择重载方法?
我在测验中遇到了这个问题,
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
呼啦一阵风
随时随地看视频慕课网APP
相关分类