我正在观看一个视频,该视频试图覆盖Java中的toString()方法,如下
我对这行代码很好奇:
returnString += items[i].toString();
这里的toString()
似乎仍然是Object类的一个。
为什么这一行不会导致我定义的新方法的递归?
也就是说,我如何知道写在我试图覆盖的新方法中的方法是哪种方法?
@Override
public String toString() {
String returnString = "{";
for (int i = 0; i < size-1; i += 1) {
returnString += items[i].toString();
returnString += ", ";
}
returnString += items[size-1];
returnString += "}";
return returnString;
}
如果items
是另一个类的数组,则此行从另一个类别调用toString()
。如果items
是当前类的数组,则当array.length == 0
或将是无穷大递归(将抛出StackOferflowException
)时,递归将停止。