Eu sei que isso parece uma pergunta estranha, já que o objetivo de dois ou mais objetos compartilharem a mesma classe é que o comportamento deles é o mesmo, ou seja, seus métodos são idênticos.
No entanto, estou curioso para saber se existem linguagens OOP que permitem redefinir os métodos de objetos da mesma maneira que você pode atribuir valores diferentes para seus campos. O resultado seria objetos construídos a partir da mesma classe que não exibem mais exatamente o mesmo comportamento.
Se não me engano, você pode fazer esse JavaScript? Junto com essa pergunta, pergunto: por que alguém iria querer fazer isso?
setClickHandler()método e fazer com que instâncias diferentes da mesma classe façam coisas muito diferentes. Em idiomas que não possuem expressões lambda convenientes, é mais fácil criar uma nova subclasse anônima apenas para um novo manipulador. Tradicionalmente, os métodos de substituição eram considerados a marca registrada de uma nova classe, enquanto a definição dos valores dos atributos não era, mas especialmente com as funções do manipulador, os dois têm efeitos muito semelhantes, então a distinção se torna uma guerra por palavras.