É possível ter mais de uma sobrescrita de toString?
É possível ter mais de uma sobrescrita de toString?
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!