-
- 调用基类机关器. 这个步调会络续地反复递归下去, 起首是机关这种层次布局的跟, 然后是下一层导出类, 等等, 知道最低层的导出类.
- 按声明次序调用成员的初始化办法.
- 调用导出类机关器的主体.
[画工学徒--Java]组合, 持续以及多态的机关器调用次序
添加时间:2013-8-8 点击量:package com.kan.thinking.demo;
class Meal {
Meal() {
System.out.println(Meal());
}
}
class Bread {
Bread() {
System.out.println(Bread());
}
}
class Cheese {
Cheese() {
System.out.println(Cheese());
}
}
class Lettuce {
Lettuce() {
System.out.println(Lettuce);
}
}
class Lunch extends Meal {
Lunch() {
System.out.println(Lunch());
}
}
class PortableLunch extends Lunch {
PortableLunch() {
System.out.println(PortableLunch());
}
}
class Sandwich extends PortableLunch {
private Bread b = new Bread();
private Cheese c = new Cheese();
private Lettuce l = new Lettuce();
public Sandwich() {
System.out.println(Sanwich());
}
}
/
@author Kan
@verison 创建时候 : 2013-8-8 下午5:25:06
/
public class ConstructorInitOrderDemo {
public static void main(String[] args) {
new Sandwich();
}
}运行成果 :
Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce
Sanwich()
错杂对象调用机关器要遵守的次序 :
机关动作一经产生, 那么对象所有项目组的全部成员都邑获得构建. 然而, 在机关器内部, 我们必须确保所要应用的成员都已经构建完毕. 为确保这个目标, 独一的办法就是起首调用基类机关器. 此外, 当成员对象在类内进行定义的时辰, 只要有可能, 就应当对它们进行初始化(也就是说, 经由过程组合体式格式将对象置于类内).