use*_*460 0 java class object tostring
当我们需要一个对象的String表示时,我们可以覆盖该toString()方法.但是,toString()当我们可以定义一个返回字符串的新方法时,覆盖的真正好处和原因是什么?
请看下面的例子:
class One
{
private String name;
public One(String _name)
{
name = _name;
}
@Override public String toString()
{
return name;
}
}
class Two
{
private String name;
public Two(String _name)
{
name = _name;
}
public String printMyClass() //Self-defined to print class details
{
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,printMyClass()自定义似乎与之相同toString().
所以我的问题是:为什么我们仍然使用toString()?
主要的好处是库期望这种行为并使用它.
例如,如果你记录,"funcX called with ("+param1+", "+param2+")"那么toString()将自动为你调用.
此外,这意味着您始终知道该toString()方法可用(因为它已定义,因此您可以在每个对象上调用它,而无需担心它是否存在.
对你来说更好的问题是为什么不使用它?它是为您提供的,为什么您不想使用它?