и когда я передаю его System.out.println (), он печатает содержимое строки
Фактически, когда вы передаете String
на System.out.println
вы все равно не пройдете через toString
.System.out
относится к объекту PrintStream
, который имеет метод, который немедленно принимает String
s:
public void println(String x)
Печатает строку и затем завершает строку.
Контракт toString
должен возвращать строковое представление объекта:
public String toString()
Возвращает строковое представление объекта. Как правило, метод toString
возвращает строку, которая «представляет собой текст» этого объекта. Результатом должно быть краткое, но информативное представление, которое легко читается человеком.Рекомендуется, чтобы все подклассы переопределяли этот метод.
Поскольку String
происходит с be a String
, оно может вернуть себя (this
)!