应该何时从子类调用超类的构造函数?

时间:2014-02-28 11:27:22

标签: java constructor super

  

调用超类构造函数的语句应该是子类构造函数中的最后一个语句。

这是一个有效的陈述吗?

3 个答案:

答案 0 :(得分:4)

不,它应该是子类的第一个陈述。

  

调用超类构造函数必须是第一行   子类构造函数。

查看here了解详情

答案 1 :(得分:0)

不,这不是一个有效的语句。必须是子类构造函数的第一个语句。

如果不添加该行,编译器将自动添加该行。

实施例

class A {
    public A() {
        System.out.println("Inside A's constructor.");
    }
}

class B extends A {
    public B() {
       // super(); // THIS LINE WILL BE AUTOMATICALLY ADDED BY THE COMPILER.
       System.out.println("Inside B's constructor.");
       // super(); // THIS LINE WON'T COMPILE.
    }
}

public class Main {
    public static void main(String[] args) {
        B b = new B();
    }
} 

答案 2 :(得分:0)

不应该是第一个声明...... 即使在子类构造函数的第一行中缺少默认构造函数,编译器也会隐式调用其超类的默认构造函数