接受建議,改一下標題.例子不太恰當,我刪除了。換成了回文中的例子。
重載overloading和覆寫overriding哪個更早執行--?? visitor幫助篇
一:問題提出
雖然我們經常寫程序用到重載和覆寫,但是很少會考慮他們的執行順序。下邊的內容就是關于,他們同時出現時
哪個先起作用:
二:問題分析
Java是"動態單分派靜態多分派語言",這個定義已經多次提起,如果你不了解這些概念,看這里"visitor模式準備"
所以就注定了重載(靜態多分派)要早于覆寫(動態單分派),因為靜態分派是編繹期實現的,動態分派是執行期實現的。
三:驗證
見這里
最后的部分:
看完本文,如果你對visitor模式有更多的興趣,想了解更多請看如下幾篇文章。
1,靜態分派,動態分派,多分派,單分派 --------------?? visitor模式準備
2,訪問差異類型的集合類 ------------------------?? visitor模式入門
3,visitor模式理論及學術概念-------------------?? visitor模式進一步
4,重載overloading和覆寫overriding哪個更早執行--?? visitor幫助篇 (本文)
雖然排列順序是1,2,3,4但是我個人建議的學習方式是2,1,3,4因為這個順序更方便一般人理解