首页 > 新闻动态 >  

新闻动态
NEWS

[画工学徒--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()





  错杂对象调用机关器要遵守的次序 : 



  • 调用基类机关器. 这个步调会络续地反复递归下去, 起首是机关这种层次布局的跟, 然后是下一层导出类, 等等, 知道最低层的导出类.

  • 按声明次序调用成员的初始化办法.

  • 调用导出类机关器的主体.



  机关动作一经产生, 那么对象所有项目组的全部成员都邑获得构建. 然而, 在机关器内部, 我们必须确保所要应用的成员都已经构建完毕. 为确保这个目标, 独一的办法就是起首调用基类机关器. 此外, 当成员对象在类内进行定义的时辰, 只要有可能, 就应当对它们进行初始化(也就是说, 经由过程组合体式格式将对象置于类内).



读书,不要想着实用,更不要有功利心。读书只为了自身的修养。邂逅一本好书如同邂逅一位知己,邂逅一个完美之人。有时心生敬意,有时怦然心动。仿佛你心底埋藏多年的话,作者替你说了出来,你们在时光深处倾心相遇的一瞬间,情投意合,心旷神怡。
分享到: