所有类如何从Objectinheritance?
所有类都inheritance自java.lang.Object
,尽管extends Object
(通常)不会在任何地方写出。 这怎么可能?
如果您没有显式编写extends Object
,编译器会为您执行此操作。 因此,知道一个类只能扩展一个超类,编译器将查看层次结构并将最高的超类扩展为Object
。 因此每个类都将直接或间接inheritanceObject
类。
然而, Object
类是一种特殊情况,因为它不会扩展任何东西。
最后,如果您要编译一个简单的类并对其进行反编译,您将看到编译器将java.lang.Object
(或等效的字节码)扩展到类中
Object
是所有类的隐式直接/间接超类。
来自Oracle Java doc :
定义:从另一个类派生的类称为子类(也是派生类,扩展类或子类)。 派生子类的类称为超类(也是基类或父类)。
Excepting Object没有超类,每个类都有一个且只有一个直接超类(单inheritance)。 在没有任何其他显式超类的情况下,每个类都隐式地是Object的子类。