子类构造方法的执行过程是什么样的?

子类构造方法的调用规则:

  • 如果子类的构造方法中没有通过 super 显式调用父类的有参构造方法,也没有通过 this 显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。这种情况下,写不写 super(); 语句,效果是一样的
  • 如果子类的构造方法中通过 super 显式调用父类的有参构造方法,将执行父类相应的构造方法,不执行父类无参构造方法
  • 如果子类的构造方法中通过 this 显式调用自身的其他构造方法,将执行类中相应的构造方法
  • 如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类 Object 类的无参构造方法为止



  

来一道刷了进BAT的面试题?

posted @ 2019-11-14 21:47  ConstXiong  阅读(575)  评论(0编辑  收藏  举报