当一个重载的方法被调用时,Java在调用方法的参数和方法的自变量之间寻找匹配。 但是,这种匹配并不总是精确的。在一些情况下,Java的自动类型转换也适用于重载方法 的自变量。例如,看下面的程序: // Automatic...
当一个重载的方法被调用时,Java在调用方法的参数和方法的自变量之间寻找匹配。
但是,这种匹配并不总是精确的。在一些情况下,Java的自动类型转换也适用于重载方法
的自变量。例如,看下面的程序:
// Automatic type conversions apply to overloading.
class OverloadDemo {
void test() {
System.out.println("No parameters");
}
// 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);
}
}
class Overload {
public static void main(String args[]) {
OverloadDemo ob = new OverloadDemo();
int i = 88;
ob.test();
ob.test(10,20);
第7 章进一步研究方法和类 111
ob.test(i); // this will invoke test(double)
ob.test(123.2); // this will invoke test(double)
}
}
该程序产生如下输出:
No parameters
a and b: 10 20
Inside test(double) a: 88
Inside test(double) a: 123.2