当前位置 : 主页 > 手机开发 > 其它 >

多重继承:Java与C

来源:互联网 收集:自由互联 发布时间:2021-06-19
最近,在阅读了“编程语言与实践”一书中的一些文章之后,提到 Java中的多个接口继承不会遇到与C中的多类继承相同的问题. 但我不明白为什么会这样.在C实现错误中,java如何能够使用多
最近,在阅读了“编程语言与实践”一书中的一些文章之后,提到 Java中的多个接口继承不会遇到与C中的多类继承相同的问题.

但我不明白为什么会这样.在C实现错误中,java如何能够使用多个接口继承?

有没有办法在C中替换多继承以避免实现问题?

对于最后一个更具体的陈述,我们说:

class A {...};
class B : public A {...};
class C : public A {...};
class D : public B, public C {...};

然后D类继承继承A类的B,C类.所以如果A有一个字段变量,那么B,C将具有相同的变量名,那么D将具有什么变量(继承自B或C).为了避免这种情况我们可以编写上面的代码而没有多重继承,但结果相似吗?

问题不是重复,因为它没有关注最终将是示例中的继承,而是要了解Java-C多重继承之间的区别(请参阅上面的第一个问题)以及是否有建议克服的方法一些多重继承问题(如上所述).

Java(与C不同)不允许 multiple inheritance状态,因此不会受到 diamond problem的影响.

它允许通过接口进行多重继承(一个类可以实现多个接口).

从Java 8开始,通过接口中的默认方法还存在多个行为继承.

网友评论