问题标签 [multiple-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1493 浏览

php - 从两个父类继承

我很久以前就读过这个,但现在从未尝试过,我不记得这是否可能。是否可以在 php5 上从两个父级扩展一个类,例如

class_d 扩展了 class_c 和 class_b

此外,如果 class_c 和 class_b 本身是从 class_a 扩展的,你能做到这一点......所以你会得到这样的东西

0 投票
5 回答
10667 浏览

c# - 如何用 C# 等良好但多继承的截断语言解决“必须是 MarshalByRefObject”?

如何用 C# 等良好但多继承的截断语言解决“必须是 MarshalByRefObject”?

问题很简单,在某些情况下你只需要从这个类继承(基础设施要求)。在这里真的无关紧要,哪种情况。那么,如果您已经从其他一些类(您的领域模型要求)继承,您会怎么做?

顺便说一句,好的应用程序框架,如 spring.net 始终确保您不必从此类继承,无论您需要将哪种基础设施应用于您的类。

我想知道我在这里得到-3票是为了什么?:)

0 投票
4 回答
39334 浏览

vb.net - VB .Net 中是否可以进行多重继承?

VB .Net 中是否可以进行多重继承?如果是这样,语法是什么?

0 投票
7 回答
37702 浏览

java - Java中的输入和输出流管道

有没有人对在 Java 中创建一个既是 InputStream 又是 OutputStream 的 Pipe 对象有什么好的建议,因为Java 没有多重继承,并且两个流都是抽象类而不是接口?

潜在的需求是拥有一个可以传递给需要 InputStream 或 OutputStream 的东西的单一对象,以将输出从一个线程传递到另一个线程的输入。

0 投票
4 回答
3491 浏览

oop - 多重继承是邪恶的吗?

可能重复:
多重继承的确切问题是什么?

为什么多重继承被认为是邪恶的,而实现多个接口却不是?尤其是当曾经认为接口只是纯粹的抽象类时?

(或多或少)重复 多重继承的确切问题是什么?C#中的多重继承,以及其他一些......

0 投票
1 回答
935 浏览

zend-framework - Zend框架如何在域中建立多表继承?

我有一个数据库结构,其中包含一个 Person 表,其中包含名称、电子邮件、company_id、personType 等字段。因为不是所有的人都必须是系统用户的,所以我有一个单独的表用户,它为系统中的用户定义用户名和密码。

我有以下代码来定义人员表的表数据网关:

这段代码定义了 Person 的域对象:

最后,我有另一个用户表数据网关:

还有一个像这样扩展 Model_Person 表的基本类:

如何正确扩展“Model_User”类(它为除一个以外的所有其他类型的用户提供基本类型)以使用映射到一个表的“Model_Person”类函数,同时还将实际的“Model_User”函​​数映射到使用第二张桌子?

0 投票
7 回答
15246 浏览

c++ - 钻石继承 (C++)

我知道拥有钻石继承权被认为是不好的做法。但是,我有两个案例,我觉得钻石继承非常适合。我想问一下,你会建议我在这些情况下使用钻石继承,还是有其他设计可以更好。

案例 1:我想在我的系统中创建代表不同类型“动作”的类。这些动作按几个参数分类:

  • 动作可以是“读”或“写”。
  • 动作可以有延迟或无延迟(它不仅仅是 1 个参数。它显着改变了行为)。
  • 动作的“流类型”可以是 FlowA 或 FlowB。

我打算有以下设计:

当然,我会遵守没有 2 个动作(从 Action 类继承)将实现相同的方法。

案例 2:我在我的系统中为“命令”实现复合设计模式。一个命令可以读、写、删除等。我也想有一个命令序列,也可以读、写、删除等。一个命令序列可以包含其他命令序列。

所以我有以下设计:

此外,我还有一种特殊的命令,“现代”命令。一个命令和复合命令都可以是现代的。成为“现代”会为一个命令和复合命令添加特定的属性列表(它们的属性大多相同)。我希望能够持有指向 CommandAbstraction 的指针,并根据所需的命令类型(通过 new)对其进行初始化。所以我想做下面的设计(除了上面的):

同样,我将确保没有 2 个从 CommandAbstraction 类继承的类将实现相同的方法。

谢谢你。

0 投票
4 回答
1116 浏览

c++ - 多重继承

上面的 foo 调用是编译时错误。我想用obj的B部分调用foo而不使用虚拟继承。我怎么做。

另外,在虚拟继承的情况下,为什么需要将偏移信息存储在vtable中。这可以在编译时确定。在上述情况下,如果我们将 foo 与 D 的对象一起传递,则只有在编译时我们才能计算 D 的 A 部分的偏移量。

0 投票
6 回答
4342 浏览

c++ - C++ 如何选择调用哪个重载函数?

假设我有三个课程:

我的意思是说我有两个类,然后是第三个类,它扩展了两者(多重继承)。

现在说我在另一个类中定义了一个函数:

我用两者的实例调用这个函数:

这会导致编译时错误,说明函数调用不明确。

除了这种情况,C++ 编译器在哪些情况下判断调用不明确并抛出错误(如果有)?编译器如何确定这些情况是什么?

0 投票
4 回答
495 浏览

java - 继承选项

除了实现接口之外,我们可以用于多重继承的其他选项是什么