如题:new 一个没有构造方法的子类,会调用父类的无参构造方法。如下面的两个类:
从结果可以看出,当子类没有定义无参构造方法时,new一个该类的对象会调用其父类的无参构造方法。同时,还会初始化子类中的参数,int类型被初始化为0,boolean类型的被初始化为false,引用对象被初始化为null。
public class FatherClass {
private int age;
public FatherClass(int age) {
super();
System.out.println("初始化值" + age);
}
public FatherClass(){
System.out.println("FatherCalss");
}
}
public class Subclass extends FatherClass {
int a;
boolean flag;
String str;
}
public class Test {
public static void main(String[] args) {
Subclass subClass = new Subclass();
System.out.println(subClass.a);
System.out.println(subClass.flag);
System.out.println(subClass.str);
subClass.toString();
}
}
以上三个类分别为父类、子类、测试类。输出结果如下:
FatherCalss
0
false
null
从结果可以看出,当子类没有定义无参构造方法时,new一个该类的对象会调用其父类的无参构造方法。同时,还会初始化子类中的参数,int类型被初始化为0,boolean类型的被初始化为false,引用对象被初始化为null。