Как именно работает метод toString? Почему он срабатывает даже если он не вызывается?