解决方案 »

  1.   

    子类重写父类方法,所以第一次,super(); 调用时,调用到Person(),Person()再调用func(),但是子类重写了父类的方法,所以此时调用的func 为Teacher 的 func 也就是2 
    Teacher(int a) 时,有参的构造方法会默认调用该对象无参的构造方法,也就是Teacher(),然后就同上面相同了,调完func 后,再输出自己的System.out.print(a); 也就是3 
    所以是2 2 3 
    楼主看一下,子类重写父类方法 和 有参的构造方法默认调用无参构造方法
    可以同时 看一下 this 和 super 调用构造方法的使用
      

  2.   

    百度下“RTTI"这个可以解答为什么会是2而不是1