页面

2010-07-28

java构造函数

  1. 每个类都是调用自己的一系列构造函数中的一个。
  2. 被调用的构造函数中没有super调用的话,将先依次调用基类的默认构造函数,且都是在调用完基类构造函数后才执行本身构造函数内的代码。
  3. 任何类,只要定义了一个带参构造函数,同时没有定义默认构造函数,那么java不会为其提供默认构造函数。
下面是从这里整理的:
  1. 子类在初始化的时候,Java将自动调用基类的默认构造器;
  2. 当基类只有带参数的构造器时,子类的构造器必须显式的利用super关键字调用基类的构造器;
  3. 当基类有多个构造器且其中包含默认构造器,而且子类不显式的调用基类的构造器时,Java将自动调用基类的默认构造器;即:父类并不一定要有默认的无参数构造器。分为两种情况:
    1. 有默认构造器,那么子类在不显示调用有参父类构造器的时候,会隐式调用该默认构造器。
    2. 没有默认构造器,那么子类必须显示调用有参父类构造器。
又:隐式调用父类无参数构造器的情况:
  1. 父类仅有无参数构造器,子类肯定会隐式调用;
  2. 父类有多个构造器,且其中包含无参数构造器,且子类没有显式调用父类的有参构造器,那么会隐式调用无参数构造器。

没有评论: