[Dúvida] Método toString()

Galera, estava estudando aqui e me deparei com o método toString(), em que ele retorna uma String (lógico), segue o trecho:

O método toString de um objeto é chamado implicitamente quando o objeto é utilizado onde uma String é esperada (por exemplo, quando printf gera saída do objeto como uma String utilizando o especificador de
formato %s ou quando o objeto é concatenado para uma String utilizando o operador +). Para que esse comportamento ocorra, toString
deve ser declarada com o cabeçalho public String toString().

Esse método não precisa ser chamado para retornar a String? Em que circunstância esse método vai retornar a String?

Olá

Todas as classes são implicitamente estendidas da classe Object e a classe Object possui o método toString.

Se usar o Netbeans, toda vez que vc implementar o toString, será solicitado para inserir a annotation Override, que significa que está sobrescrevendo um método.

É claro que para retornar a string, o método precisa ser chamado.

Exemplo:

public class Pessoa {
    String nome;

    public Pessoa(String nome) {
        this.nome = nome;
    }

    public static void main(String[] args) {
        imprime("Teste");
        // >>> Teste

        Object p1 = new Pessoa("Joao");
        imprime(p1);
        // >>> Pessoa???????

        Object p2 = new Pessoa("Maria") {
            public String toString() {
                return this.nome;
            }
        };
        imprime(p2);
        // >>> Maria

        Object p3 = new Pessoa("Roberto") {
            public String toString() {
                // super.toString() o super faz referência a classe estendida mais próxima que possua o método toString, que é a Object
                return super.toString() + "  " + this.nome;
            }
        };
        imprime(p3);
        // >>> Pessoa???????  Roberto
    }
    
    public static void imprime(Object o) {
        System.out.println(o.toString());
    }
}

Além do que o @diego12 explicou, o método toString() por default vai ser sempre chamado quando você for for apresentar alguma coisa para o usuário ou concatenar valores com outra string.