Java 对象类中是否也有super(),如果有,它位于哪里?

Java 对象类中是否也有super(),如果有,它位于哪里?,java,core,Java,Core,super()隐式放置在每个构造函数中,以便它获取父类中提到的方法。层次结构中的最高类是对象 问题是Object类的super()指向哪里 对象中不会有super。检查 如您所见,它没有基类(请注意,基类隐式地是Object,但在这种情况下怎么可能呢?) 如代码注释中所述,它是Java层次结构的根。因此,它是一种特殊情况,没有超类调用。当链在对象处停止时,请思考 像A->super()->B->super()->stop对象类位于java中所有类的基础中,因此在对象类的构造函数中不会调用supe

super()
隐式放置在每个构造函数中,以便它获取父类中提到的方法。层次结构中的最高类是
对象


问题是
Object
类的
super()
指向哪里

对象中不会有super。

检查

如您所见,它没有基类(请注意,基类隐式地是
Object
,但在这种情况下怎么可能呢?)


如代码注释中所述,它是Java层次结构的根。因此,它是一种特殊情况,没有超类调用。

当链在对象处停止时,请思考


像A->super()->B->super()->stop

对象类位于java中所有类的基础中,因此在对象类的构造函数中不会调用super()


它不被任何类扩展,因此很明显,它在构造函数中不调用super。

对象类不能有super(),因为它是类层次结构中的最高项。下面的所有内容都将有一个super()而不是Object。

您可能会发现这很有趣

System.out.println("System.class.getSuperclass()= "+System.class.getSuperclass());
System.out.println("Object.class.getSuperclass()= "+Object.class.getSuperclass());
印刷品

System.class.getSuperclass()= class java.lang.Object
Object.class.getSuperclass()= null
请参阅JLS的详细信息

如果此构造函数用于非
对象
的类,则此构造函数将以超类构造函数的显式或隐式调用开始(使用
super


您可以通过编写两个类并从一个类扩展另一个类来检查这一点

例:

将A类创建为:

class A{

   int a, b;

   A(int a, int b){
   }

}
创建扩展A类的B类:

class B extends A{
    public static void main(String a[]){
        B b = new B();
    } 
}
在尝试创建类B的对象时会出现错误,因为会调用类B默认构造函数,而intrun会调用超类“A”的默认构造函数,但类A没有任何默认构造函数或零参数构造函数