编程思想里的代码都是这样,虽然很短,但是很绕,这个debug自己调试下吧,就知道执行顺序了

解决方案 »

  1.   


    有些看了真的一头雾水。完全不懂执行顺序。我自己去学下debug。多谢。
      

  2.   

    首先,要理解内部类和类没有什么区别。
    其次,来说说这个顺序,先设BigEgg2为B,Egg2为B,然后继承自A,main中new B,那么首先在初始化B之前会
    初始化A,A的域y被初始化,所以首先打印出Egg2.Yolk(),然后执行构造函数,打印出New Egg2(),接下来是父类初始化
    首先没有域,所以构造函数被执行,使用父类方法 insertYolk ,然后B的内部类被初始化,还是遵从前面的述说,所以先打印
    Egg2.yolk,然后执行自己的构造函数,最后一个打印是由于子类重写了父类的g方法,所以是如此结果,是Java多态的一种表现---
    重写方法。
    最后,个人觉得,《Java编程思想》对于初学者比较吃力,有些深度,且有很多的经验之谈。可以看一些更加简单的书籍。