多態性是面向對象編程屬性,允許多個方法使用同一介面。Java 從多方面支持,兩大核心支柱:
超類中非 final 方法可被子類重寫,構建類層次結構極簡單。每個子類特化其超類。超類引用可指向任意子類對象,通過超類引用調用方法時,自動執行子類重寫版本。因此,超類定義對象形式並提供默認實現,子類據此修改以適應具體需求。超類定義的介面成為多種不同實現的基礎。
Java 進一步推進「一個介面,多個方法」概念。interface 關鍵字將類方法與實現完全分離。雖介面是抽象的,但可聲明介面類型引用。此概念極重要,改進了多態性應用:只要類實現某介面並提供特定功能,任何需要該功能的代碼都可使用該類對象。例:void myMeth(MyIF ob) 可操作任何實現 MyIF 的對象,無需關心其其他功能。
這兩大機制共同構成了 Java 多態性的核心支持體系。