如果构造函数没有在java中继承那么为什么它的子类构造函数默认在子类中被调用?

时间:2017-10-05 09:14:22

标签: java oop inheritance

让我们说我们有两个班级:

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

及其子类

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

下面的输出是 一个 一个 乙

public static main(String[] args){
 A a = new A();
 B b = new B();
 }

为什么这样的构造函数不会被继承? 我们不应该在子类构造函数中调用super()来调用parent的构造函数吗?

感谢

1 个答案:

答案 0 :(得分:0)

当你创建子类的对象时,super()通过jvm为非参数化构造函数自动调用。

如果您的构造函数已参数化,则必须通过传递参数(如super(参数))进行调用。