public static void main(String[] args)
{
doSomething(new ArrayList());
}
public static void doSomething(Collection collection) {
System.out.println("Collection here!");
}
public static void doSomething(List list) {
System.out.println("List here!");
}
此打印出List here!
如預期,但在Java規範定義的地方,所以我可以依靠它這種行爲,因爲任何Java實現?
它調用最具體的方法(我敢肯定,這是一個重複) – JonK
是的,它是在[JLS](HTTPS定義: //docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.2)。 – Eran
即使行爲是明確的,恕我直言,你不應該依賴它。要麼兩個重載版本對相同的參數做同樣的事情,要麼不使用重載。 –