Vin*_*ren 16 oop programming-languages definition this dynamic-dispatch
我找到了一些关于打开/关闭递归的解释,但我不明白为什么定义包含"递归"这个词,或者它与动态/静态调度的比较.在我发现的解释中,有:
打开递归.大多数语言使用对象和类提供的另一个便利功能是一个方法体通过一个名为
self
或在某些语言中调用的特殊变量来调用同一对象的另一个方法的能力this
.self的特殊行为是它是后期绑定的,允许在一个类中定义的方法在第一个类的某个子类中调用稍后定义的另一个方法.[ Ralf Hinze ]
......或者在维基百科:
调度语义
this
,即对此调用的方法调用是动态调度的,称为开放递归,意味着这些方法可以被派生类或对象覆盖.相比之下,函数的直接命名递归或匿名递归使用闭合递归,具有早期绑定.
我还阅读了StackOverflow问题:什么是开放递归?
但我不明白为什么"递归"这个词用于定义.当然,如果通过执行方法递归调用来使用"开放递归",它可能会导致有趣(或危险)的副作用.但是定义不直接考虑方法/函数递归调用(在维基百科定义中显示"封闭递归",但听起来很奇怪,因为"打开递归"并不是指递归调用).
你知道为什么定义中有"递归"这个词吗?是因为它是基于另一个我不知道的计算机科学定义吗?应该简单地说"动态调度"还不够吗?