Java 中的回傳型別重載:不相容
儘管Java 具有多方面的功能,但該語言在重載函數時還是存在限制僅透過變更返回類型。這就提出了一個常見的問題:為什麼 Java 會禁止這樣的重載?
答案在於重載的基本性質。重載允許多個具有相同名稱的函數共存於一個類別中,並透過它們的參數簽名進行區分。然而,當返回類型也用於區分時,就會出現歧義。考慮以下程式碼:
public int foo() {...}
public float foo() {...}
如果允許兩個 foo 方法共存,編譯器在遇到 foo() 語句時就會面臨困境。僅憑回傳類型,無法確定要呼叫哪個函數。這種歧義是 Java 不允許基於返回類型進行重載的主要原因。
此限制擴展到另一種流行的程式語言 C 。在 Java 和 C 中,傳回類型在函數簽章中起著重要作用,充當函數行為的端點。改變它會直接影響函數的語意,使重載的概念站不住腳。
儘管程式語言設計不斷進步,但沒有具體計劃在 Java 或 C 中引入此類重載。目前的方法保持了清晰度並防止了程式碼執行期間潛在的誤解。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3