Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce()
Sandwich()

解决方案 »

  1.   

    先创建Sandwich类对象,由于Sandwich是PortableLunch派生的,而PortableLunch是Lunch派生的,而Lunch是Meal派生的,所以,按照这个顺序就生成了一次。
    而Bread、Cheese、Lettuce是类成员变量,所以先产生了
    就是这样,自己调试一下理解吧
      

  2.   

    你在前面自己定义了4方法 分别为 Meal Cheece Bread Lettuch
    然后通过Meal 扩展出方法 Lunch 再通过Lunch 扩展出方法 PortableLunch
    当然在这里是每个扩展出的方法都要继承前一个方法的所有........
    最后一个Sandwich 接收了PortableLunch 也就是说,Sandwich 中将继承前面扩展出方法的所有内容.然后在Sandwich 中 定义前面 Bread Cheece Lettuch3个方法,然后在Main方法里执行Sandwich
      

  3.   

    唉,慢了一步啊~~~~楼上说的输出格式没错,由于你是在Sandwich里才定义的Bread Cheece Lettuch,所以Meal 和 Lunch 和 PortableLunch 要先行输出.在最后的Sandwich里的3个方法,直到你的Sandwich开始运行的时候才能被调用
      

  4.   

    Thinking in Java上的源程序,楼上的都解释的很清楚了,其实自己动一下手再看看书上的解释就明了的^_^