子类构造函数初始化

父类没有显式声明构造函数

  1. 若子类也没有显式声明自己的构造函数,则父类和子类均由编译器生成默认的构造函数.
  2. 若子类中声明了构造函数(无参或者带参),则不用顾忌父类的构造函数.在创建子类对象时,先调用父类默认的构造函数,再调用子类的构造函数.

父类只声明了无参构造函数

  1. 若子类的构造函数没有显式地调用父类的构造, 则将会调用父类的无参构造函数.

父类只声明了带参构造函数

  1. 子类的构造函数必须显示地调用父类的带参构造函数.

父类同时声明了无参和带参构造函数

  1. 子类只需要实现父类的一个构造函数即可,不管是无参的还是带参的构造函数.若子类的构造函数没有显式地调用父类的构造函数(无参或带参),则默认调用父类的无参构造函数.