【问题标题】:Why is it not recommended to use multiple inheritance?为什么不推荐使用多重继承?
【发布时间】:2012-01-12 08:20:04
【问题描述】:

我正在 R 中创建 S4 类。

我在https://github.com/hadley/devtools/wiki/S4读到

请注意,S4 支持多重继承,但应该使用这个 非常小心,因为它使方法查找变得极其复杂。

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

【问题讨论】:

标签: r inheritance multiple-inheritance s4


【解决方案1】:

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

当代码发展时,多重继承通常会带来问题。

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

【讨论】:

  • 我认为你的解释对 s4 方法有点困惑——它们属于函数,而不是类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2017-11-04
  • 2011-10-22
  • 2011-04-11
  • 2021-10-12
  • 2012-12-07
  • 2012-05-16
相关资源
最近更新 更多