为什么不是其它方法呢??

解决方案 »

  1.   

    因为  println(Object obj)方法里面最终(经过一系列的方法调用String.valueOf(Object obj))会调用 obj.toString();
    如果你能改写这个方法,你可以让它调用你需要的方法。
      

  2.   

    因为从object类继承下来的。
    所有的类都是object类的子类
      

  3.   

    这儿主要是System.out.println()方法决定了它的行为,
      

  4.   

    println(Object ob); 最终获取toString()方法来输出信息内容  因为Object是所有类的父类 Java语言里就这样规定了 没办法 
      

  5.   

    其实现大概是这样:
    System.out.println(Object ob)
    {
     System.out.println(ob.toString());
    }
    你可以重写obj的toString()方法,你打印时就会调用重写后的toString()
      

  6.   

    对的,因为每个类均是Object的子类,在调用System.out.println(Object ob)时,参数obj会在后台自动调用toString()方法
      

  7.   

    实际上任何类的父类都是object,那么也就是说任何类都继承了它的toString()方法,
    当你用System.out.println(obj);的时候,打印方法就会去找obj对象所在的类有没有
    重写父类的toString()方法,如果有,那么按照自己重写的打印该对象,如果没有,那
    么调用父类的toString()方法,也就是打印该对像在内存中的地址
    比如:
    class Point {
         private String name;
         public String toString(){
               return this.name;
         }
    }
    现在执行System.out.println(a)就会打印name的值,也就是null
      

  8.   

        public void println(Object x) {
            String s = String.valueOf(x);
            synchronized (this) {
                print(s);
                newLine();
            }
        }你看看JDK的源代码,看到了吗? String.valueOf();
        public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
        }好了,搞定!