A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

主要是为什么?

2 个回复

倒序浏览
子类构造方法执行前先执行父类构造,因为每个子类构造中的第一句代码都是默认super();语句,它调用父类无参构造,使其率先执行。率先执行父类构造也是为了使父类数据先初始化,以便于子类的使用。否则,父类数据还没有初始化,子类无法使用。
回复 使用道具 举报
子类和父类构造方法的执行特点:
       一,子类对象实例化时,如果子类构造函数没有显示的用super调用父类的构造函数,则会默认调用
             父类的无参构造函数,如果没有显示的用super调用父类的构造函数,而父类中也没有无参的构造
             函数,则运行时会报找不到无参构造函数的异常,因为子类构造函数会在第一句非注释代码的地方
             隐式的写super();调用父类无参构造函数。
       二,子类实例化个顺序:
              1,进入子类构造函数;
              2,执行父类构造函数,完成父类的初始化。
              3,再执行子类构造函数的方法体。完成子类初始化。
原因:
       构造函数的作用主要用于初始化类的成员变量。而子类继承了父类的除构造函数外的所有成员,
       父类的成员是定义在父类中的,而不是所有的成员子类都可见,如果要对这些类成员变量在实例化时就初始化成功,则必须要用父类的构造函数,所以要调用父类的构造函数来初始化符。
  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马