子类和父类构造方法的执行特点:
一,子类对象实例化时,如果子类构造函数没有显示的用super调用父类的构造函数,则会默认调用
父类的无参构造函数,如果没有显示的用super调用父类的构造函数,而父类中也没有无参的构造
函数,则运行时会报找不到无参构造函数的异常,因为子类构造函数会在第一句非注释代码的地方
隐式的写super();调用父类无参构造函数。
二,子类实例化个顺序:
1,进入子类构造函数;
2,执行父类构造函数,完成父类的初始化。
3,再执行子类构造函数的方法体。完成子类初始化。
原因:
构造函数的作用主要用于初始化类的成员变量。而子类继承了父类的除构造函数外的所有成员,
父类的成员是定义在父类中的,而不是所有的成员子类都可见,如果要对这些类成员变量在实例化时就初始化成功,则必须要用父类的构造函数,所以要调用父类的构造函数来初始化符。
|