有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java可以解释输出是如何变成这样的?

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 created

B created

我无法理解构造函数A()是如何被调用的。在B()中没有调用super。但是仍然调用了一个()


共 (2) 个答案

  1. # 1 楼答案

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

    这就是程序在B created之前打印A created的原因

  2. # 2 楼答案

    在子类中,super()被自动隐式调用,以确保对象被正确构造