当Object Class被添加为超类时?

时间:2017-02-19 06:58:01

标签: java inheritance jvm jvm-languages

我正在浏览Object类JAVA-docs,因为我们知道Object是所有类的基类。但我想知道,当Object类被添加为超类时? 是编译时还是运行时(理想情况下应该是在编译时)?

同样,我已经阅读过JVM会自动检查一个类是否继承自父类,那么它不会将Object作为超类添加以避免继承 - 菱形问题,但是在抽象类/内部类的情况下会发生什么? 将添加Super class-Object在哪里?

在创建任何新的内置对象示例HashMap时,我们可以从源代码看到内部工作,同样可以在Java源代码中的任何地方看到此功能,还是由内部编译器完成?

1 个答案:

答案 0 :(得分:5)

如果您没有指定超类,则默认java.lang.Object。超类是在编译时确定的。对于abstractinnerstatic)类,没有显式超类型;超级类型是java.lang.Object