黑马程序员技术交流社区

标题: 子父类中构造方法的执行有什么特点?为什么要这样? [打印本页]

作者: 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