程序的执行结果是:( )
public class Test {
public static void main(String [] args){
Child c = new Child();
}
}
class Father{
public Father(){ System.out.println("父类无参构造函数");}
public Father(String name){
System.out.println("父类有参构造函数");
}
}
class Child extends Father{
public Child(){
this("dd");
System.out.println("子类无参构造函数");
}
public Child(String name){
super("dd");
System.out.println("子类有参构造函数");
}
}父类有参构造函数
子类有参构造函数
子类无参构造函数
父类无参构造函数
子类有参构造函数
子类无参构造函数
子类有参构造函数
子类无参构造函数
父类无参构造函数
子类无参构造函数
子类有参构造函数
父类无参构造函数
在子类构造函数中,如果没有调用超类构造函数(直接或者间接都算),那么JVM会自动在子类构造函数的第一行自动调用超类的默认构造函数(或无参数构造函数)。
在子类构造函数中,如果有调用超类构造函数(直接或者间接都算),那么按照代码默认顺序执行
在子类构造函数中,如果有调用超类构造函数(直接或者间接都算),那么按照代码默认顺序执行