Olá pessoal, a dúvida é mais a nível de curiosidade mesmo.
Eu precisei sobrescrever um método de uma classe mas fiz isso diretamente no construtor da classe, assim:
Veiculo v = new Veiculo()
{
public String toString(){ return "Isso é um veículo!";}
};
Gostaria de saber qual o nome dessa técnica de programação e quando é mais apropriado usá-la, é óbvio que o uso desta técnica é quando quero sobrescrever rapidamente sem alterar a classe original e sim apenas o objeto mas devo usar apenas nessa situação?
Um abraço à todos. 
Só uma dúvida relacionada a essa… isso é considerado uma boa prática? ou POG?
ou talvez esteja entre os 2…
ou também… talvez seja uma boa prática em umas situações mais complexas… realmente não sei hehe, alguém aí dê uma luz
Ótima prática de programação!!
8)
Você fazer uma classe anônima assim não tem problema. Você só fazer classe anônima, tem problema! Seu código vai ficar todo complexo de ler.
Essa técnica normalmente é feita para aqueles momentos em que você só vai precisar daquela classe aquela vez. Então, não tem muita utilidade fazer uma classe “completa” para isso. Encontramos isso bastante em métodos que recebem listeners, que tem funcionalidade específicas; ou tarefas que são “one-shot”.
O que eu uso de guia é:
Se você vai sobrescrever/implementar um método, e/ou se vai utilizar os dados da classe/método “pai”, vai em frente. Se você vai fazer 2 ou mais, ou o código do método vai ficar enorme, considere utilizar uma classe (estática ou não) aninhada; que mantem as classes organizadas e “no mesmo lugar”.
ah… entendi… o tópico não é meu mas muito obrigado hehehe
e fbfarias … posso estar errado… mas acredito que isso não seja polimorfismo
Obrigado a todos! Baseando-se na dica no nosso amigo clunsde dei uma olhada na documentação de java e constatei que são mesmo classes anônimas que nada mais é a definição de uma classe interna “Inner Class” sem o nome ficando assim implícita e permitindo a sobrecarga rápida dos métodos.
Bom, fbfarias logicamente essa técnica é uma forma de aplicar polimorfismo pois estou definindo novos comportamentos à classe. 
Na documentação consta três razões pra se usar Classes aninhadas:
- Quando você quiser agrupar logicamente classes que são usadas apenas em um só lugar.
- Quando você quiser aumentar o encapsulamento.
- Classes aninhadas podem levar a um código mais legível e de fácil manutenção.
http://download.oracle.com/javase/tutorial/java/javaOO/nested.html
http://download.oracle.com/javase/tutorial/java/javaOO/innerclasses.html
Ah! Sim, realmente ótima prática de programação! 