java重载时自动转换咋回事?举例说明

当一个重载的方法被调用时,Java在调用方法的参数和方法的自变量之间寻找匹配。  (视频下载) (全部书籍)
但是,这种匹配并不总是精确的。只有在找不到精确匹配时,Java的自动转换才会起作用。 (如果定义了test(int),当然先调用test(int)而不会调用test(double)。 )


本章源码

//自动类型转换 Automatic type conversions() apply to overloading.

class Overl {
    // Overload test for two integer parameters.
    void test(int a, int b) {
        System.out.println("a and b: " + a + " " + b);
    }

    // overload test for a double parameter
    void test(double a) {
        System.out.println("Inside test(double) a: " + a);
    }
}

public class Test {
    public static void main(String args[]) {
        Overl ob = new Overl();
        int i = 80;
        ob.test(i); // 没有int类型,所以调用double类型的自动转换。this will invoke test(double)
        ob.test(555.5); // 准确调用,this will invoke test(double)

。。。。。。。。。。。


详情请进:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner2_web.html#AutomaticConversion

猜你喜欢

转载自www.cnblogs.com/mark-to-win/p/9690802.html