推 LPH66: 你(或者是教材)或許把 overload 跟 override 搞混了 03/14 03:32
→ LPH66: 這裡講的東西比較接是 override, 繼承時有沒有覆蓋父類方法 03/14 03:33
→ LPH66: 接近* 03/14 03:33
→ LPH66: overload 則只單純是同名, 而且正是以參數的不同做為分別 03/14 03:34
→ LPH66: 至於所謂的較長 method 簽名, 各語言或各編譯器有不同做法 03/14 03:35
→ LPH66: java 的做法是把參數型態和回傳值編碼成一個字串 03/14 03:36
→ LPH66: 使用這字串和函數名共兩個字串做一組來看 03/14 03:37
→ LPH66: 其他語言有把這兩個字串給編碼在一起成一個字串的 (如 C++) 03/14 03:37
→ LPH66: 一般這類的編碼規則會叫做 name-mangling 03/14 03:40
→ edash: 抱歉,開頭那邊打錯了,我修改一下 03/14 03:45
※ 編輯: edash (1.162.91.203), 03/14/2016 03:45:54
→ edash: 謝謝回應,我大概懂意思了 03/14 12:31
→ cha122977: 我個人的解讀是,compiler其實用的名稱比你寫的還長 03/14 22:04
→ cha122977: 那個更長的名稱則是以 原名稱+其參數型別 組合出來的 03/14 22:06
→ cha122977: 因此只要參數型別/數量不同 就會被判斷成別的function 03/14 22:06
→ cha122977: 表面上名稱一樣,但對compiler來說兩者是不一樣的東西 03/14 22:12
→ cha122977: ^參數不同的 03/14 22:12
→ edash: 謝謝兩位回應 03/16 07:12