首页 > 解决方案 > toString() 覆盖如何工作

问题描述

我刚刚了解了toString()对象类中的方法以及如何在其他类中覆盖它。

class Box {
      public String toString(){
          return "class Box";
      }
}

class B {
    public static void main(String args[]){
        Box b1=new Box();
        System.out.println(b1); //case 1
        Box b2=b1; //case 2
    }
}

所以我的问题是盒子对象如何知道toString()在案例 1 中返回类 Box 中的字符串并b1在案例 2 中返回对象的地址?

标签: javaoopobjecttostringprintstream

解决方案


System.out.println您调用的方法是(Object)重载,而不是(String). PrintStream.println(Object)调用toString()它的论点(迂腐:直接或间接,除非论点是null)。


推荐阅读