今天做了一套牛客网的校招全国统一模拟笔试(六月场)的题,我竟然通过了两道编程题,是题目太简单了么....
其中有一道选择题,如下,
class base{
public base(String s) {
System.out.println("B");
}
}
public class test extends base{
public test(String s) {
System.out.println("D");
}
public static void main(String[] args){
new test("C");
}
}运行的结果是什么?
在编译器中敲了代码,显示Implicit super constructor base() is undefined for default constructor错误,不太理解,百度一波...
父类的构造方法只有有参数的构造方法,即父类没有无参的构造方法,这样的话,子类继承该类,就必须要显示的调用父类的构造函数,这样才能保证,编译器在将子类初始化前,父类先被初始化。如果要使子类不显示的的调用父类的构造函数的话,则必须在父类加一个无参的构造函数,这样的话,编译器在初始化子类之前,会自动的将父类先初始化。