所有类如何从Object继承?

4 java inheritance class object

所有类都继承自java.lang.Object,但extends Object(通常)不会在任何地方写出来.这怎么可能?

小智 23

如果你没有显式编写extends Object,编译器会为你做.因此,知道一个类只能扩展一个超类,编译器将查看层次结构并将最高的超类扩展为Object.所以每个类都会直接或间接继承Object该类.

Object然而,这个类是一个特例,因为它没有任何扩展.

最后,如果您要编译一个简单的类并对其进行反编译,您将看到编译器将扩​​展 java.lang.Object(或等效的字节码)插入到类中


Raz*_*zib 5

Object隐含直接/间接超类中的所有类.

来自Oracle Java doc:

定义:从另一个类派生的类称为子类(也是派生类,扩展类或子类).派生子类的类称为超类(也是基类或父类).

Excepting Object,没有超类,每个类都有一个且只有一个直接超类(单继承).在没有任何其他显式超类的情况下,每个类都隐式地是Object的子类.