多型 (Polymorphism)
- 又稱為dynamic/late/run-time binding
- 用base class的reference指向其derived class的物件,執行期間才依據物件是哪個class執行其所override的method。
陷阱: fields及static methods
- 多型只用在一般的成員method,對於成員變數及static method則是在compile time根據reference的class做存取。
Polymorphic methods在建構式中的行為
- 建構式中盡量不要呼叫method,除非其為final或是非override的method。呼叫會override的method可能會因為late binding造成問題且難以debug。
沒有留言:
張貼留言