Java]组合, 继承以及多态的构造器调用顺序

[画工学徒–Java]组合, 继承以及多态的构造器调用顺序

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 ConstructorInitOrderDemo { main(String[] args) {new Sandwich();}}

运行结果 :

Meal()Lunch()PortableLunch()Bread()Cheese()LettuceSanwich()

复杂对象调用构造器要遵照的顺序 :

构造动作一经发生, 那么对象所有部分的全体成员都会得到构建. 然而, 在构造器内部, 我们必须确保所要使用的成员都已经构建完毕. 为确保这个目的, 唯一的方法就是首先调用基类构造器. 此外, 当成员对象在类内进行定义的时候, 只要有可能, 就应该对它们进行初始化(也就是说, 通过组合方式将对象置于类内).

posted on

,香港虚拟主机,服务器空间,香港虚拟主机不论你在什么时候开始,重要的是开始之後就不要停止

Java]组合, 继承以及多态的构造器调用顺序

相关文章:

你感兴趣的文章:

标签云: