Java 中的回傳類型重載:不相容性
儘管Java 具有多方面的能力,但該語言在重載函數時還是存在限制僅透過改變返回類型。這就提出了一個常見的問題:為什麼 Java 會禁止這樣的重載?
答案在於重載的基本性質。重載允許多個具有相同名稱的函數共存於一個類別中,並透過它們的參數簽名進行區分。然而,當返回類型也用於區分時,就會出現歧義。考慮下面的程式碼:
<code class="java">public int foo() {...} public float foo() {...}</code>
如果允許兩個 foo 方法共存,編譯器在遇到 foo() 語句時將面臨困境。僅憑回傳類型,無法確定要呼叫哪個函數。這種歧義是 Java 不允許基於返回類型進行重載的主要原因。
此限制擴展到另一種流行的程式語言 C。在 Java 和 C 中,傳回類型在函數簽章中起著重要作用,充當函數行為的端點。改變它會直接影響函數的語意,使重載的概念站不住腳。
儘管程式語言設計不斷進步,但沒有具體計劃在 Java 或 C 中引入此類重載。目前的方法保持了清晰度並防止了程式碼執行期間潛在的誤解。
以上是為什麼Java重載不能基於回傳類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!