读书人

大伙儿帮忙看看这段程序的输出结果程

发布时间: 2012-10-26 10:30:59 作者: rapoo

大家帮忙看看这段程序的输出结果,程序好纠结啊

Java code
class Meal {  Meal() { print("Meal()"); }}class Bread {  Bread() { print("Bread()"); }}class Cheese {  Cheese() { print("Cheese()"); }}class Lettuce {  Lettuce() { print("Lettuce()"); }}class Lunch extends Meal {  Lunch() { print("Lunch()"); }}class PortableLunch extends Lunch {  PortableLunch() { print("PortableLunch()");}}public class Sandwich extends PortableLunch {  private Bread b = new Bread();  private Cheese c = new Cheese();  private Lettuce l = new Lettuce();  public Sandwich() { print("Sandwich()"); }  public static void main(String[] args) {    new Sandwich();  }}


[解决办法]
System.out.print
[解决办法]
是不是:
Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettuce
Sandwich()
[解决办法]
可以看看:
http://wenwen.soso.com/z/q191435823.htm


[解决办法]
这个 你自己 考虑一下 初始化的 顺序吧

父类构造函数的调用是在调用 子类的构造函数的时候 开始的 ,
父类的构造顺序 跟子类是一致的

构造顺序 一般 就是

1.成员变量
2.包括静态变量和静态数据块,
3.然后构造函数
4.赋值问题

我自己总结的 求大神 指正
[解决办法]
加载一个类时,先看有没有父类,如果有的话先加载父类,而加载一个类的顺序是静态代码块,静态属性,属性,构造方法,父类加载完后子类也按照这种顺序加载。这样就有了上面的结果。。。

读书人网 >J2SE开发

热点推荐