Java 类型转换和方法重载
这是示例代码:Java 类型转换和方法重载,java,type-conversion,overloading,Java,Type Conversion,Overloading,这是示例代码: public class OverloadingExample { public void display(Object obj){ System.out.println("Inside object"); } public void display(Double doub){ System.out.println("Inside double"); } public static void main(String args[]){ new Overl
public class OverloadingExample {
public void display(Object obj){
System.out.println("Inside object");
}
public void display(Double doub){
System.out.println("Inside double");
}
public static void main(String args[]){
new OverloadingExample().display(null);
}
}
输出:
内翻
有人能解释一下为什么调用带有
Double
参数的重载方法而不是调用带有Object
的重载方法吗?是-因为Double
比Object
更具体。有一个从Double
到Object
的转换,但不是相反,这使它更具体
有关更多信息,请参阅JLS的第页。细节很难理解,但这有助于:
非正式的直觉是,如果第一个方法处理的任何调用都可以传递给另一个方法,而不会出现编译时类型错误,那么一个方法比另一个方法更具体
因此,在这里,
display(Double doub)
的任何调用都可以通过display(Object obj)
来处理,但不能反过来处理。谢谢。“非正式的直觉是,如果第一个方法处理的任何调用都可以传递到另一个方法,而不会出现编译时类型错误,那么一个方法比另一个方法更具体。”@noob:Yup,我只是添加了那个位:)