é possivel sobreescrever o método toString?!
Método toString()
9 Respostas
Claro, por que não?
pq ja ouvi falar q ela é terminada com final
Pra checar se é e ver como o método é montado, é só apertar CTRL e clicar em cima do nome do método, ao menos no Eclipse. Portanto, é só fazer isso pra checar.
Mas quanto a pergunta, dá sim.
O que seria “sobreescrever o método toString”?
Desculpa pela duvida tola… 
Abraços
A classe String é final.
O método toString() da classe Object, não é.
Já respondendo também ao black falcon: O método toString() é chamado toda vez que o Java precisa encontrar a representação textual de um objeto. Isto é, sempre que você concatena uma variável a uma String, ou passa ela como se fosse uma String.
Então é possível fazer isso:
public class Cliente {
private String nome;
public Cliente(String nome) {
this.nome = nome;
}
public String toString() {
return "Cliente: " + nome);
}
}
public static void main(String args[]) {
Cliente cliente1 = new Cliente("Black falcon");
Cliente cliente2 = new Cliente("ViniGodoy");
Cliente cliente3 = new Cliente("Alexandre Laranja");
System.out.println(cliente1 + ", " + cliente2 + ", " + cliente3);
Esse código imprime:
Cliente: Black falcon, Cliente: ViniGodoy, Cliente: Alexandre Laranja
Isso pq, como os objetos cliente1, cliente2 e cliente3 precisaram ser textualmente exibidos, o método toString() de cada um deles foi implicitamente chamado. ;)
Achei um tutorial que fala sobre sobrescrever metodos…
http://beduihno.blogspot.com/2008/06/sobrescrevendo-mtodos-em-java.html
Mas tipo, nao entendi qual a vantagem de se sobrescrever um metodo… 
Alguem pode tirar essa duvida?
Abraços
Cara, existem métodos reescritos ou sobrecarregados.
Sobre os reescritos, a vantágem é simples. Você pode fazer uma implementação sua desse método, alterá-lo conforme tal necessidade.
Dá uma lida sobre sobrecarga de métodos, também . Você vai usar muito métodos reescritos e/ou sobrecarregados in your coding life. =)
Veja no exemplo acima. Sobrescrever toString() permitiu a classe Cliente saber como a string dela é melhor representada.
Se o método toString() não fosse sobrescrito, o mesmo código imprimiria algo como:
Cliente@1293, Cliente@1921, Cliente@2d0a
Não muito amigável, concorda? Há também a possibilidade de sobrescrever o método equals (para dizer se dois objetos são iguais), hashCode (cria uma chave quase única para o objeto), etc.
Enfim, sobrescrever permite especializar o comportamento de um método qualquer, numa área mais baixa da sua hierarquia de classes.
Saquei um pouco melhor agora… depois vou dar uma estudada no que voces falaram 
Obrigado ViniGodoy e Sergio Figueras pela ajuda!
Abraços