所有类如何从Object继承?

时间:2015-06-24 06:28:52

标签: java class object inheritance

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

2 个答案:

答案 0 :(得分:23)

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

Object类是一个特殊情况,因为它不会扩展任何内容。

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

答案 1 :(得分:5)

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

来自Oracle Java doc

  

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

     

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