Java 你能解释输出是怎么来的吗?

Java 你能解释输出是怎么来的吗?,java,inheritance,constructor,Java,Inheritance,Constructor,上述程序的输出将为 public class A { public A(){ System.out.println("A created"); } public static void main(String[] args) { new B(); } } class B extends A{ public B(){ System.out.println("B created"); } } 我不明白构

上述程序的输出将为

public class A {
  public A(){
    System.out.println("A created");        
  }
  public static void main(String[] args) {
    new B();
  }
}

class B extends A{
    public B(){
        System.out.println("B created");
    }       
}

我不明白构造函数A()是如何调用的。在B()中没有调用super。但是仍然调用了一个()

当class
B
扩展class
A
时,默认情况下它将调用构造函数
A()


这就是为什么程序在子类中的
B created
之前打印
A created
super()

A created

B created