调用超类构造函数的语句应该是子类构造函数中的最后一个语句。
这是一个有效的陈述吗?
答案 0 :(得分:4)
答案 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)
不应该是第一个声明...... 即使在子类构造函数的第一行中缺少默认构造函数,编译器也会隐式调用其超类的默认构造函数