每个类都扩展了Object?

use*_*012 0 java inheritance

我读到默认情况下每个类都扩展了一个对象类.那么它应该导致多重继承,Java不能支持.

请搜索很多,但无法得到正确的答案/编译器在这种情况下的工作原理.请帮帮我.

ars*_*jii 16

当你有类似的东西

class A {}
Run Code Online (Sandbox Code Playgroud)

然后A含蓄地延伸Object.实际上字节码类似

class A extends Object {}
Run Code Online (Sandbox Code Playgroud)

现在,如果有的话

class B extends A {}
Run Code Online (Sandbox Code Playgroud)

然后是Bextends,A也是它的子类Object,因为A是它的子类Object.但是,这不是多重继承:

Object
  |
  A
  |
  B

多重继承看起来像这样:

Object   A
  \     /
   \   /
    \ /
     B

B从两个层次不相关的类继承.


Sot*_*lis 5

怎么可能是多重继承?

class Object { /* stuff */ }

class Foo /* implicit extends Object */ {}

class FooBar extends Foo /* and therefore extends Object */ {}
Run Code Online (Sandbox Code Playgroud)

Java语言规范中描述了这些规则

Object类是所有其他类的超类(第8.1.4节)。