每个人都知道在java中我们只能扩展“ONE”类。
但为了理解:
在这种情况下,我们默认扩展两个类。
如果Java不支持多重继承,为什么允许这样做?
答案 0 :(得分:3)
不,Java阻止类直接扩展多个超类。 A类可以扩展扩展C类的B类。这仍然是单继承。所有类都形成一个树,其中根是Object类,每个类(Object除外)只有一个直接超类(或父类),它是Object或其他类。
答案 1 :(得分:2)
这将是多级继承。 你错误地将多个错误归结为多个级别。
A->B->C //This is multilevel inheritance which you are talking about
多重继承就像(在java中不可能)
A
| |
B C
Java不支持多重继承,这使得任何模糊的情况都会逐渐消失。但仔细实施实现关键字以实现确实会产生多重继承感
<强>结论:强>
A类可以扩展一个扩展了C类的B类。这仍然是单继承。所有类都形成一个树,其中根是Object类,每个类(Object除外)只有一个直接超类(或父类)
答案 2 :(得分:0)
每当A类扩展B类时,A类不再扩展Java.lang.Object,但是:由于每个类都扩展了Java.lang.Object,如前所述,B类将扩展Java.lang.Object,因此A类仍然是该特定类的子类。
答案 3 :(得分:0)
“默认情况下隐式扩展Object”意味着如果在类声明中没有看到extends关键字,那么它“不可见但直接”扩展了Object。如果看到extends关键字,则该类不直接扩展Object,而是扩展子句中提到的类。现在你必须遍历那个层次结构,在某一点上,你会发现一个没有“extends”的父类,并且隐式继承再次出现。
层次结构中的所有类可传递扩展Object,但只有root才能直接执行。传递上,因为所有子类都继承了父类的所有特征,包括它们的父类和实现的接口。