我在 R 中创建 S4 类。
我在https://github.com/hadley/devtools/wiki/S4中阅读
请注意,S4 支持多重继承,但使用时应格外小心,因为它会使方法查找变得极其复杂。
什么是方法查找,为什么多重继承更复杂?
我在 R 中创建 S4 类。
我在https://github.com/hadley/devtools/wiki/S4中阅读
请注意,S4 支持多重继承,但使用时应格外小心,因为它会使方法查找变得极其复杂。
什么是方法查找,为什么多重继承更复杂?
当您键入属于多个类(例如 A、B 和 C)时,计算机必须决定调用哪个f(x)
方法(来自 A、B 或 C 类的方法):这称为“方法查找”。x
f
当代码发展时,多重继承通常会带来问题。
假设您编写了两个基类 A 和 B,而 C 类继承自这两个基类。一切正常。几个月后,一个使用 A 类并且完全不知道 B 和 C 类(他不需要它们)的开发人员向 A 类添加了一个新方法。他不知道的是,已经有一个相同的方法B 类中的名称。 C 类的对象会发生什么情况?将使用 A 或 B 的方法吗?在某些语言中,代码可能会失败,而在其他语言中,您可能会遇到未定义的行为和非常难以捕捉的错误。