是 TestB
程序运行过了因为你调用的是 new TestB();
在 TestB 里面,a() 被覆盖了。父类的方法是不可见的。

解决方案 »

  1.   

    哪怕你就是
    public  class  TestB  extends  TestA
    {
                 public  void  a()
                 {
                               System.out.println("TestB");
                 }
                 public TestB(){
                   super();
                 }
                 public  static  void  main(String[]  args)
                 {
                               new  TestB();
                 }
    }
      

  2.   

    继承以后,注销了以前的函数,或者说覆盖了以前函数的地址估计是最终答案,因为csdn 明白人太少了:)