区分过载要领
若要领有同样的名字,Java奈何知道我们指的哪一个要领呢?这里有一个简朴的法则:每个过载的要领都必需采纳唯一无二的自变量范例列表。
若稍微思考几秒钟,就会想到这样一个问题:除按照自变量的范例,措施员如何区分两个同名要领的差别呢?
纵然自变量的顺序也足够我们区分两个要领(尽量我们凡是不肯意回收这种要领,因为它会发生难以维护的代码):
//: OverloadingOrder.java
// Overloading based on the order of
// the arguments.
public class OverloadingOrder {
static void print(String s, int i) {
System.out.println(
"String: " + s +
", int: " + i);
}
static void print(int i, String s) {
System.out.println(
"int: " + i +
", String: " + s);
}
public static void main(String[] args) {
print("String first", 11);
print(99, "Int first");
}
} ///:~
两个print()要领有完全一致的自变量,但顺序差异,可据此区分它们。