区分过载体例
( N7 }; G3 u9 R$ G 若体例有同样的名字,Java若何知道我们指的哪一个体例呢?这里有一个简单的轨则:每个过载的体例都必需采纳并世无双的自变量类型列表。2 f* B* A W+ h- F+ q5 m) E: O
若稍微思虑绩秒钟,就会想到这样一个问题:除按照自变量的类型,轨范员若何区分两个同名体例的差异呢?& u9 u( b+ ^% h$ x" ]- z, y' i" B
即使自变量的挨次也足够我们区分两个体例(尽管我们凡是不愿意采用这种体例,因为它会发生难以维护的代码)://: OverloadingOrder.java
& U x2 u0 @' z0 R // Overloading based on the order of7 W" {0 y3 A! Z8 `( c: f/ X- S6 ~
// the arguments.public class OverloadingOrder {1 L+ B/ a2 ^! P
static void print(String s, int i) {
/ N9 K' Q" w, w: s1 _ System.out.println(! b& D0 z; n* H4 q) Q {2 l
"String: " + s +" o! Y* y3 R+ H! E' V
", int: " + i);
, m0 n! g6 {) K' i V/ s9 ? }. g6 z$ { ^8 ~4 Z
static void print(int i, String s) {
( k8 N& q, i8 I0 Q System.out.println(
. t+ e4 s+ I0 i "int: " + i +
U. P$ _8 z8 x( E3 z' L ", String: " + s);
' z+ A$ W/ J) n) D }& L: M" M T2 }( m" ]1 E
public static void main(String[] args) {2 J& F/ D$ M! ?( |6 _
print("String first", 11);4 O+ n' o% u; }
print(99, "Int first");
* x! w% S( w& m2 I; s5 N6 z }- ]. Q) f2 w6 @/ l& e
} ///:~两个print()体例有完全一致的自变量,但挨次分歧,可据此区分它们。 |