黑马程序员技术交流社区
标题:
子父类中构造方法的执行有什么特点?为什么要这样?
[打印本页]
作者:
guanxiangliang
时间:
2014-8-4 21:45
标题:
子父类中构造方法的执行有什么特点?为什么要这样?
主要是为什么?
作者:
依然超级赛亚人
时间:
2014-8-5 08:25
子类构造方法执行前先执行父类构造,因为每个子类构造中的第一句代码都是默认super();语句,它调用父类无参构造,使其率先执行。率先执行父类构造也是为了使父类数据先初始化,以便于子类的使用。否则,父类数据还没有初始化,子类无法使用。
作者:
晓风
时间:
2014-8-5 21:23
子类和父类构造方法的执行特点:
一,子类对象实例化时,如果子类构造函数没有显示的用super调用父类的构造函数,则会默认调用
父类的无参构造函数,如果没有显示的用super调用父类的构造函数,而父类中也没有无参的构造
函数,则运行时会报找不到无参构造函数的异常,因为子类构造函数会在第一句非注释代码的地方
隐式的写super();调用父类无参构造函数。
二,子类实例化个顺序:
1,进入子类构造函数;
2,执行父类构造函数,完成父类的初始化。
3,再执行子类构造函数的方法体。完成子类初始化。
原因:
构造函数的作用主要用于初始化类的成员变量。而子类继承了父类的除构造函数外的所有成员,
父类的成员是定义在父类中的,而不是所有的成员子类都可见,如果要对这些类成员变量在实例化时就初始化成功,则必须要用父类的构造函数,所以要调用父类的构造函数来初始化符。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2