子類對父類可存取方法的實作進行重新編寫,方法簽名(名稱、參數列表、回傳類型)必須完全一致,俗稱「外殼不變,核心重寫」。
final、static、private、建構子不可重寫子類可依業務需求定義專屬行為,實現執行期多態(動態綁定)。
同一類別(或父子類)中,方法名稱相同但參數列表不同(個數、類型、順序),回傳類型、存取修飾符、拋出異常均可任意變化。
| 比較點 | 重載 | 重寫 |
|---|---|---|
| 參數列表 | 必須修改 | 絕對不能修改 |
| 回傳類型 | 可修改 | 絕對不能修改 |
| 異常 | 可修改 | 可減少/刪除,不可新增或擴大 |
| 存取權限 | 可修改 | 不能更嚴格(可放寬) |
| 發生位置 | 同類/父子類 | 僅父子類 |
| 多態類型 | 編譯期靜態綁定 | 執行期動態綁定 |
@Override 就能重寫 → 編譯器會檢查簽名是否匹配static 方法 → 實為「隱藏」,非多態