实际上这个问题是由一位采访者提出的
问:你怎么能说java不支持多重继承?如果Object类是java中所有类的父类.
我对这个问题没有答案.
这意味着没有关于java概念的明确想法:-(
例如:如果A延伸B
这里A已经扩展了Object类.对?现在它是如何工作的?
请分享你的答案..
Mer*_*ham 13
多重继承是关于多重直接继承的.
单个类不能有两个直接父类.不过,它可以有一个祖父母班.
A extends B并且B extends C,不一样A extends both B and C.
不允许这样做的原因是为了简单起见,例如:
A extends both B and C
B extends D
C extends D
Run Code Online (Sandbox Code Playgroud)
如果你有这种情况,那么你有这个代码:
A a = new A();
a.someAbstractOrVirtualMethodOnD();
Run Code Online (Sandbox Code Playgroud)
...你谈论B的实施someAbstractOrVirtualMethodOnD(),或C同一方法的实现?哪个应该叫?(提示:没有很好的答案)
所以,Java禁止它.
注意,如果你有implement多个接口,你可以获得类似于多重继承的东西.但由于只有一个具体的实现,所以对于被调用的东西没有混淆.
最重要的是保持语言设计简单
我定期关注的博客示例.

1)我们有两个继承自A的B和C类.
2)假设B和C重写了一个继承的方法,并且它们提供了自己的实现.
3)现在D继承了B和C进行多重继承.D应该继承那个重写方法,将使用哪个重写方法?它会来自B还是C?
在这里,我们有一个模棱两可.
有任何方法可以克服这个问题,我们有接口和多级继承.
编辑:
And here A is already extending Object class.
Run Code Online (Sandbox Code Playgroud)
从来没有被称为Multiple inheritance.这就是所谓的Multi level inheritance.
在多层次,
涉及许多类inheritance,但只有一个类扩展one.最低subclass可以利用其所有super classes内容.
多重继承意味着单个类可以从多个类继承.换句话说,它可以有多个父类.
对于Object面试官引用的课堂例子,有两种可能性:
面试官自己对多个父类(多重继承)和多个子类感到困惑.
或者他试图欺骗你使用这个问题
父类可以有许多子类,并且与多重继承无关.
| 归档时间: |
|
| 查看次数: |
10352 次 |
| 最近记录: |