class Animal { Animal(){ System.out.println("调用父类无参构造器"); } Animal(int i){ System.out.println("调用父类有参构造器"); } } class Cat extends Animal{ Cat(){ System.out.println("调用子类无参构造器"); } Cat(int i){ System.out.println("调用子类有参构造器"); } } public class test{ public static void main(String[] args) { Cat cat = new Cat(); System.out.println("_____________________"); Cat cat1 = new Cat(1); } } 运行结果:
调用父类无参构造器
调用子类无参构造器
_____________________
调用父类无参构造器
调用子类有参构造器
可见,子类对象在初始化的时候,无论采用有参无参,都会默认先调用父类的无参构造器。