Ответ 1
Это мешает другим программистам делать вещи с вашими классами, которые вы им не намереваетесь делать. Поэтому вместо того, чтобы комментировать "не использовать этот класс для выполнения XXX", вы можете его спроектировать таким образом, чтобы у них не возникло соблазна переопределить его и оскорбить его таким образом.
Изменить. Поскольку запрос запрашивается, я опишу случай, когда вы можете найти это ключевое слово под рукой... скажем, у вас есть класс, который определяет, как два объекта могут взаимодействовать друг с другом, скажем, слушателя и уведомителя. Класс слушателя должен, очевидно, разрешать наследование, но вы можете сделать окончательный класс notifier таким, чтобы его можно было использовать в отношении "has-a". Таким образом, вы можете сделать некоторые предположения из ваших объектов-слушателей о характере сообщений, которые они получают.
В противном случае можно было бы наследовать от этого класса, делать всевозможные сумасшедшие вещи, такие как расширение сообщений и т.д. Если вы не хотите, чтобы другие программисты это делали, вы могли бы сделать класс окончательным. Кроме того, это может сделать намного больше смысла в широко используемом общедоступном API, поскольку это также позволяет другим программистам легко понять, какие классы подходят для подкласса.
Другой пример: скажем, у вас есть потоковый процессор на основе буфера и внутри вашего метода read()/write(), вы сохраняете некоторые данные о текущем состоянии вашего объекта (то есть текущий байт или что-то еще), Невозможно гарантировать, что кто-либо, подклассифицирующий этот класс, будет называть супер методы во время обработки, - и поскольку такой класс, вероятно, содержит только несколько методов, лучше просто сделать все окончательное вместо каждого метода. Это снова заставляет людей использовать класс "has-a", а не "is-a", и, таким образом, может контролировать, как вы ожидаете, что код будет выполнен.
Я согласен с вами в том, что создание финала всего класса, вероятно, будет чем-то, что вам нужно будет сделать один раз в синей луне, но приятно, что PHP имеет эту возможность, если вы решите его реализовать.