覆盖toString的目的是什么?

时间:2013-05-07 23:31:55

标签: java tostring

为什么不创建一个在类中返回所需信息而不是覆盖toString()方法的方法?

3 个答案:

答案 0 :(得分:3)

覆盖toString()用于设置隐式字符串转换期间返回的内容。一个例子可能是这样的:

System.out.println("The result is: " + animal);

最好看一下:

The result is: a dog.

比:

The result is: Animal@AB932CD

答案 1 :(得分:2)

基本上因为它保证在每个对象上都得到支持。 toString()Object类的成员,由于它的工作是获取类的字符串表示,因此其他代码可以依赖它。例如,PrintStreamSystem.out类)实现了依赖它的print(Object)方法。

答案 2 :(得分:1)

覆盖toString的一个常见原因是对于那些具有toString的经典实现不明显的成员的类。在这种情况下,创建一个返回类的相关字符串值的自定义toString是有意义的。