所有类如何从Objectinheritance?

所有类都inheritance自java.lang.Object ,尽管extends Object (通常)不会在任何地方写出。 这怎么可能?

如果您没有显式编写extends Object ,编译器会为您执行此操作。 因此,知道一个类只能扩展一个超类,编译器将查看层次结构并将最高的超类扩展为Object 。 因此每个类都将直接或间接inheritanceObject类。

然而, Object类是一种特殊情况,因为它不会扩展任何东西。

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

Object是所有类的隐式直接/间接超类。

来自Oracle Java doc :

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

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