|
|
package com.payton.polymorphism;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 { private Bread b = new Bread(); Lunch(){ System.out.println("Lunch()"); }}class PortableLunch extends Lunch { PortableLunch(){ System.out.println("PortableLunch()"); }}public class Sandwich extends PortableLunch{ private Bread b = new Bread(); private Cheese c = new Cheese(); private Lettuce l = new Lettuce(); public Sandwich(){ System.out.println("Sandwich()"); } public static void main(String[] args) { new Sandwich(); }}
Meal()Bread()Lunch()PortableLunch()Bread()Cheese()Lettuce()Sandwich()
调用顺序:
1、调用基类的构造函数。(先创建根,下一级派生类,....直到最后一个继承类的构造函数)
2、成员对象按照其声明顺序进行初始化。
3、执行继承类的构造函数。 |
|