当编译器在子类中为我们调用它时,为什么我们显式编写super()并调用超类构造函数?

时间:2016-11-17 20:17:03

标签: java oop constructor

为什么我们显式编写super()并调用超类构造函数。当编译器自动添加super()作为子类构造函数中的第一个语句时?

这是代码吗

public class Sub extends Super {
   public Sub() {

   }

相当于这段代码?

public class Sub extends Super {
   public Sub() {
      super();
   }

1 个答案:

答案 0 :(得分:0)

  1. 如果您正在进行构造函数重载,则需要调用super
  2. 如果您没有使用默认的无参数构造函数,则需要使用它。
  3. 如果您使用的是默认构造函数,并且您希望它基于超类默认构造函数进行初始化,则无需调用super