我在R.为什么不推荐使用多重继承?
创建S4类我https://github.com/hadley/devtools/wiki/S4
注意阅读S4支持多重继承,但因为它使得方法查找极其复杂的本应使用 格外小心。
什么是方法查找,为什么它更复杂的多重继承?
我在R.为什么不推荐使用多重继承?
创建S4类我https://github.com/hadley/devtools/wiki/S4
注意阅读S4支持多重继承,但因为它使得方法查找极其复杂的本应使用 格外小心。
什么是方法查找,为什么它更复杂的多重继承?
当你键入f(x)
,x
属于几个类(比如A,B和C)时,计算机必须决定调用哪个方法(来自类A,B或C):这称为“方法查找”。
当代码演变时,多继承常常会造成问题。
想象一下,您已经编写了两个基类A和B,并且C类都从两者继承。一切正常。 几个月后,开发人员使用A类,完全不知道B类和C类(他不需要它们),为A类增加了一种新方法。他不知道,已经有了一种方法类B中的同名。类C的对象会发生什么? A或B的方法会被使用吗?在某些语言中,代码可能会失败,而在其他语言中,您可能会遇到未定义的行为和难以捕捉的错误。
我想你的解释对s4方法有点困惑 - 它们属于函数而不是类。 – hadley 2012-01-13 02:36:54
只要确保你意识到无数的S4资源:http://stackoverflow.com/questions/4143611/sources-on-s4-objects-methods-and-programming-in-r – 2012-01-12 08:41:32