Я знаю, что это кажется странным вопросом, поскольку смысл в том, что два или более объектов совместно используют один и тот же класс, состоит в том, что их поведение одинаково, то есть их методы идентичны.
Однако мне любопытно, существуют ли какие-либо ООП-языки, которые позволяют вам переопределять методы объектов таким же образом, как вы можете назначать разные значения для их полей. Результатом будут объекты, построенные из одного и того же класса, уже не демонстрирующие одинаковое поведение.
Если я не ошибаюсь, вы можете сделать этот JavaScript? Наряду с этим вопросом я спрашиваю: зачем кому-то это делать?
setClickHandler()
метод и заставить разные экземпляры одного и того же класса делать совершенно разные вещи. В языках, в которых нет удобных лямбда-выражений, проще создать новый анонимный подкласс только для нового обработчика. Традиционно, переопределение методов считалось отличительной чертой нового класса, в то время как установка значений атрибутов не была, но особенно с функциями-обработчиками, эти два эффекта очень похожи, поэтому различие становится войной за слова.