为什么不创建一个在类中返回所需信息而不是覆盖toString()方法的方法?
答案 0 :(得分:3)
覆盖toString()
用于设置隐式字符串转换期间返回的内容。一个例子可能是这样的:
System.out.println("The result is: " + animal);
最好看一下:
The result is: a dog.
比:
The result is: Animal@AB932CD
答案 1 :(得分:2)
基本上因为它保证在每个对象上都得到支持。 toString()
是Object
类的成员,由于它的工作是获取类的字符串表示,因此其他代码可以依赖它。例如,PrintStream
(System.out
类)实现了依赖它的print(Object)
方法。
答案 2 :(得分:1)
覆盖toString
的一个常见原因是对于那些具有toString
的经典实现不明显的成员的类。在这种情况下,创建一个返回类的相关字符串值的自定义toString
是有意义的。