因为没个对象都有一个toString () 方法,他是当你输出一个对象时自动调用的.
所以你System.out.println(b);时他就调用了被你覆盖的toString () 方法.

解决方案 »

  1.   

    public String toString () 
    是每个Object的通用方法
    当println语句遇到不可理解的打印对象时就开始调用默认的toString返回
    如果类里面定义了就打印哪个,没有定义的话toString默认什么都不干返回一个16进制的字符串
      

  2.   

    对在执行System.out.println(b)时,自动调用了B的toString()方法,而在B中又用super.toString() 调用了A中的 toString()方法。 
      

  3.   

    因为所有的类都继承了Object类,呵呵,都有这个toString()方法
      

  4.   

    当你没有构造任何函数是,系统会为你默认构造一个函数(无参数的),你上面的两个类都是默认的构造.而b=b.toString(),这是系统会自动生成
      

  5.   

    每个对象都有一个toString () 方法,他是当你输出一个对象时自动调用的.