一个方法test重载,
一个是test(String),一个是test(Object),
调用的时候 用test(null)为什么调用的是string的那个方法;另再加一个test(StringBuffer),
这时候调用test(null),为什么又编译错误!对解答者表示感谢!
一个是test(String),一个是test(Object),
调用的时候 用test(null)为什么调用的是string的那个方法;另再加一个test(StringBuffer),
这时候调用test(null),为什么又编译错误!对解答者表示感谢!
java中除基本类型外都继承Objecttest(String s)
另再加一个test(StringBuffer sb)
在null时同时符合上面二个就报错了
这是我的理解。这个题考的是多态和继承,如有不当,欢迎指正。
如果有两个以上的重载方法参数可以匹配null,并且参数类型在Object类层次结构中有父子关系或子孙关系,则匹配最底层的子类,如果不是以上关系编译器则会认为是二义性。String和StringBuffer就是兄弟关系,所以有二义性。