关于在Java中重写toString()方法



我正在观看一个视频,该视频试图覆盖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)时,递归将停止。

最新更新