我想应该是这样吧;
  SuperClass和SubClass中的i不一致,new SubClass()把subclass.a加一,而superclass.a仍然是8

解决方案 »

  1.   

    s1 是SuperClass的引用 所以打印的是8 这个没什么问题 根据s1 的类型来定选择超类还是子类的 引用!
      

  2.   

    SuperClass不是抽象类,所以 s1 是SuperClass的一个实例呀。
      

  3.   

    那为什么在执行SuperClass构造函数时调用的add()方法是调用SubClass的add()方法呢?
      

  4.   

    我刚开始学java,好多问题还不是很清楚还需各位大虾指点啊~~
      

  5.   

    回答"那为什么在执行SuperClass构造函数时调用的add()方法是调用SubClass的add()方法呢?
    "因为你的add()方法是SuperClass的方法,但是如果在构造函数中使用本类中的方法是不会执行的,原因是本身还在构造的过程中怎么可能调用还没有构造好的方法呢?