【发布时间】:2016-09-08 21:16:35
【问题描述】:
最近在阅读《编程语言与实践》一书中的一些文章后,提到Java中的多接口继承与C++中的多类继承没有同样的问题。
但我不明白为什么会这样。 java如何在存在C++实现错误的情况下使用多接口继承??
有没有办法在 C++ 中替换多重继承以避免实现问题??
为了更具体的最后一条语句,可以说我们有:
class A {...};
class B : public A {...};
class C : public A {...};
class D : public B, public C {...};
然后类 D 继承类 B,C,它们都继承类 A。因此,如果 A 有一个字段变量,那么 B,C 将具有相同的变量名,那么 D 将具有什么变量(从 B 或 C 继承)。为了避免这种情况,我们是否可以编写上面的代码而不使用多重继承但结果相似?
这个问题不是重复的,因为它没有关注示例中的最终继承是什么,而是要了解 Java-C++ 多重继承之间的区别(参见上面的第一个问题)以及是否有办法建议克服一些多重继承问题(如上)。
【问题讨论】:
-
Java 不是单继承吗?
-
为什么在文本中的逗号前加空格,而不是相反?
-
@Tobias ,据我所知,它是类的单一继承,而不是接口的单一继承......
-
你不能对数据成员产生钻石效应,因为接口不允许数据成员,只有抽象方法。
标签: java c++ inheritance