繼承(Inheritance)是物件導向程式設計的核心機制,但也容易被誤用。
本章介紹如何在繼承階層中移動方法與欄位,以及何時該用委託(Delegation)取代繼承。
優先用繼承來快速建立原型,日後若發現繼承帶來過多耦合,再重構為委託。
這種「先繼承後委託」的策略能兼顧開發效率與長期可維護性。
flowchart TB
subgraph up ["⬆️ Pull Up(提升至父類別)"]
direction TB
U1[子類別] -->|Method/Field| U2[父類別]
end
subgraph down ["⬇️ Push Down(下移至子類別)"]
direction TB
D1[父類別] -->|Method/Field| D2[子類別]
end
subgraph delegate ["🔄 委託取代繼承"]
direction LR
E1[繼承關係] -->|重構| E2[委託關係]
end