如下代码:
class A {
A() { }
}
class B extends A {
}哪两个说明是正确的?( )
B类的构造器应该是public.
B类的构造器应该是没有参数
B类的构造器应该调用this().
B类的构造器应该调用super().
在 Java 中,super() 是一个特殊的方法,它用于在子类构造函数中调用父类的构造函数。
当我们创建一个子类对象时,Java 会先调用父类的构造函数,然后再调用子类的构造函数。在子类的构造函数中,如果没有显式调用 super() 方法,则 Java 会默认调用父类的无参构造函数。如果父类没有无参构造函数,则编译器会报错。
通过调用 super() 方法,我们可以显式地指定要调用父类的哪个构造函数。例如,在子类的构造函数中调用 super(x, y) 就表示要调用父类的带参数构造函数,并传递参数 x 和 y。
总之,使用 super() 方法可以保证子类对象在创建时先调用父类的构造函数,从而确保父类的初始化工作得以完成。
当我们创建一个子类对象时,Java 会先调用父类的构造函数,然后再调用子类的构造函数。在子类的构造函数中,如果没有显式调用 super() 方法,则 Java 会默认调用父类的无参构造函数。如果父类没有无参构造函数,则编译器会报错。
通过调用 super() 方法,我们可以显式地指定要调用父类的哪个构造函数。例如,在子类的构造函数中调用 super(x, y) 就表示要调用父类的带参数构造函数,并传递参数 x 和 y。
总之,使用 super() 方法可以保证子类对象在创建时先调用父类的构造函数,从而确保父类的初始化工作得以完成。