2012-09-11 47 views

回答

3

Object...只不過它是一個數組,這意味着相同的定義Object[]

...(三個點)表示varargs在Java。

我們通常看到的主要方法,此簽名像main(String... args)

所以,有一個以上的方法用相同的簽名是不是在允許類(編譯時錯誤)。這就是爲什麼你看到編譯時錯誤。

3

它們是相同的「引擎蓋下」。可變參數(在...)傳遞一個數組作爲參數:

它仍然是真實的多個參數必須在陣列中被傳遞,但可變參數功能自動化並隱藏過程。此外,它與預先存在的API向上兼容。

您可以在文檔here中找到它。

2

可變長度參數,如Object...是句法糖。當使用,例如:

flexiPrint("apple", "peach", "plum"); 

然後 「蘋果」, 「桃」, 「李子」 實際上變成:`對象[] { 「蘋果」, 「桃」, 「李子」}。

+0

方法重載指定具有相同名稱但返回類型和/或參數不同的第二個方法。方法重寫是你在你的答案中描述的(重寫超類方法)。 – Brian

+0

你是對的!我的錯。 – bfishman

+0

你最後的聲明是相同的簽名仍然是真實的,但感謝更正:) +1 – Brian