【发布时间】:2015-09-10 05:15:09
【问题描述】:
所有类都继承自java.lang.Object,尽管extends Object(通常)不会在任何地方写出。这怎么可能?
【问题讨论】:
标签: java class object inheritance
所有类都继承自java.lang.Object,尽管extends Object(通常)不会在任何地方写出。这怎么可能?
【问题讨论】:
标签: java class object inheritance
如果你没有明确地写extends Object,编译器会为你做这件事。所以知道一个类只能扩展一个超类,编译器会查看层次结构并将最高超类扩展为Object。所以每个类都会直接或间接继承Object类。
Object 类是一个特例,因为它不扩展任何东西。
最后,如果你要编译一个简单的类并反编译它,你会看到编译器插入扩展
java.lang.Object(或
等效的字节码)
进入课堂
【讨论】:
Object 是所有类的隐式直接/间接超类。
定义:从另一个类派生的类称为 子类(也是派生类、扩展类或子类)。这 派生子类的类称为超类(也 基类或父类)。
除了没有超类的 Object 之外,每个类都有一个并且 只有一个直接超类(单一继承)。 在没有任何 其他显式超类,每个类都是隐式的子类 对象。
【讨论】: