多態通過分離「做什麼」(接口)與「怎麼做」(實現),實現接口與實現解耦。繼承允許以父類類型引用子類對象。
| 綁定類型 | 時機 | 適用方法 |
|---|---|---|
| 前期綁定(靜態) | 編譯/鏈接期 | static、final、private、構造器 |
| 後期綁定(動態) | 運行期 | 非 final、非 static、非 private 實例方法 |
域訪問永遠靜態綁定,不具備多態性。
「用盡可能簡單的方式使對象進入正常狀態,構造器內只調用 final 方法(或 private/static 方法),避免調用可被覆寫的方法。」
原因:子類構造器執行前父類構造器已運行,若父類調用被子類覆寫的方法,子類字段尚未初始化,導致不可預期行為。
消除類之間的耦合,使代碼依賴抽象而非具體實現,支撐開閉原則、依賴倒置原則。