R 为什么不建议使用多重继承?

R 为什么不建议使用多重继承?,r,inheritance,multiple-inheritance,s4,R,Inheritance,Multiple Inheritance,S4,我在R中创建S4类 我读报 请注意,S4支持多重继承,但应使用此选项 非常小心,因为这会使方法查找极其复杂 什么是方法查找?为什么多重继承更复杂?当您键入f(x),而x属于几个类(例如,A、B和C),计算机必须决定调用哪个f方法(来自类A、B或C):这称为“方法查找” 当代码演化时,多重继承常常会带来问题 假设您编写了两个基类A和B,而类C继承了这两个基类。一切正常。 几个月后,一个使用类A的开发人员完全不知道类B和C(他不需要它们),向类A添加了一个新方法。他不知道,类B中已经有一个同名的方法

我在R中创建S4类

我读报

请注意,S4支持多重继承,但应使用此选项 非常小心,因为这会使方法查找极其复杂

什么是方法查找?为什么多重继承更复杂?

当您键入
f(x)
,而
x
属于几个类(例如,A、B和C),计算机必须决定调用哪个
f
方法(来自类A、B或C):这称为“方法查找”

当代码演化时,多重继承常常会带来问题

假设您编写了两个基类A和B,而类C继承了这两个基类。一切正常。
几个月后,一个使用类A的开发人员完全不知道类B和C(他不需要它们),向类A添加了一个新方法。他不知道,类B中已经有一个同名的方法。类C的对象会发生什么情况?会使用A或B的方法吗?在某些语言中,代码可能会失败,在另一些语言中,您可能会有未定义的行为和很难捕捉的错误。

请确保您了解大量的S4资源:我认为您的解释对S4方法有点困惑-它们属于函数,而不是类。