java - 如何解释Java中的多重继承

标签 java

<分区>

其实这个问题是面试官问的

问题: 怎么能说java不支持多重继承呢? 如果 Object class 是 java 中所有类的父类。

我无法回答这个问题。

这意味着对 java 概念没有清晰的认识:-(

例如: 如果 A 扩展 B

这里 A 已经扩展了 Object 类。正确的? 现在它是如何工作的?

请分享你的答案..

最佳答案

多重继承是关于多重直接继承。

单个类类不能有两个直接父类。不过,它可以有一个祖 parent 类。

A extends BB extends CA extends both B and C 相同.

不允许这样做的原因是为了简单起见,当您遇到以下情况时:

A extends both B and C

B extends D

C extends D

如果你有这样的情况,然后你有这样的代码:

A a = new A();
a.someAbstractOrVirtualMethodOnD();

...您是在谈论someAbstractOrVirtualMethodOnD()B 实现,还是同一方法的C 实现?应该调用哪个? (提示:没有很好的答案)

因此,Java 禁止它。

请注意,如果您实现多个接口(interface),您可以获得类似于多重继承的东西。但由于只有一个具体实现,因此不会混淆调用什么。

关于java - 如何解释Java中的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328629/

相关文章:

java - 如何在我的 java servlet 中处理 multipart/form-data POST 请求?

java 从字符串中提取以逗号分隔的元素

java - 如何使动态制作的按钮在 Scrollview 中可滚动?

java - 拆分具有特定格式的一些文本

java - 域模型中是否可以接受实体循环引用?

java - 每 20 个字符分割字符串,然后将每个部分打印到控制台

java - joptionpane 确认对话框无法识别 no 选项

java - 使用 fx :include 时自定义 Controller 工厂

java - 尝试覆盖方法时奇怪的 Eclipse 行为

java - 为接受 T 的通用方法提供具体类实例,其中 T 扩展具体类