“你好,阿米戈!我要給你講講方法重載。”
“你也可以讓它們超載?!多棒的一天!”
“你可以用它們做很多事情,但我們現在不會討論那個。”
“就這麼說定咯。”
“重載是一個非常簡單的操作。實際上,它甚至不是對方法的操作,儘管它有時被稱為一個可怕的名字:參數多態性。”
您必須記住的是,類中的每個方法都必須有一個唯一的名稱。
“是的,我知道。”
“嗯,這不完全正確。我的意思是,這根本不正確。一個方法不必有唯一的名稱。必須唯一的是方法名稱及其參數類型的組合。這種組合也是稱為方法簽名。”
代碼 | 評論 |
---|---|
|
這是允許的。這兩種方法具有唯一的名稱。 |
|
這也是允許的。這兩種方法具有唯一的名稱(簽名)。 |
|
方法名稱在這裡仍然是唯一的。 |
|
但這是不允許的。這些方法不是唯一的,即使傳遞的類型不同。 |
|
但這是允許的。方法參數是唯一的。 |
“我已經在什麼地方見過了。”
“是的。當您鍵入“ System.out.println ”時,IntelliJ IDEA 建議使用不同參數的打印方法的幾十個版本。編譯器簡單地識別並根據您傳遞的參數類型調用所需的方法。”
“這並不難。但這不是多態性。”
“或者更準確地說,這不是方法重寫。”
順便說一句,我想指出參數名稱是無關緊要的。它們在編譯過程中丟失。一旦一個方法被遵守,只有它的名字和參數類型是已知的。
GO TO FULL VERSION