Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] toString()

É possível ter mais de uma sobrescrita de toString?

1 resposta
solução!

Olá Kevin, tudo bem?

A sobreescrita do método toString() da classe Object só é possível ter um, que é o método sem argumentos. Porém, sim, é possível ter mais de um método toString() em uma classe Java com diferentes assinaturas. Isso é conhecido como sobrecarga de método. A sobrecarga de método ocorre quando uma classe tem dois ou mais métodos com o mesmo nome, mas com diferentes parâmetros.

Por exemplo, imagine que você tenha uma classe Pessoa que represente uma pessoa com nome, idade e profissão. Você pode sobrescrever o método toString() para retornar uma representação em String da pessoa com base em diferentes parâmetros. Por exemplo, você pode ter um método toString() que retorne apenas o nome da pessoa e outro método toString() que retorne o nome e a idade da pessoa.

Veja um exemplo de como isso pode ser feito:

public class Pessoa {
    private String nome;
    private int idade;
    private String profissao;

    // construtor, getters e setters

    @Override
    public String toString() {
        return nome;
    }

    public String toString(boolean incluirIdade) {
        if (incluirIdade) {
            return nome + ", " + idade;
        } else {
            return nome;
        }
    }
}

Neste exemplo, a classe Pessoa tem dois métodos toString(). O primeiro método é a sobreescrita e retorna apenas o nome da pessoa, enquanto o segundo método é uma sobrecarga e retorna o nome e a idade da pessoa, dependendo do valor do parâmetro incluirIdade.

Espero ter ajudado e bons estudos!