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