接受建议,改一下标题.例子不太恰当,我删除了。换成了回文中的例子。
重载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因为这个顺序更方便一般人理解