| Цитата | 
|---|
| Андрей Николаев написал: 
 Эм... а с какой целью? Вот мне например final в классах битрикса доставляют очень большие неудобства и поэтому приходится извращаться.| Цитата | 
|---|
 | Антон Горбылев  написал: final у ряда основных классов проставлен специально, как раз чтобы не было наследников (хотя до выпуска в коробку его там не было).
 | 
 | 
Потому что класс и сигнатура методов ещё не приняли своего окончательного вида.
Представьте, что у класса нет final. Вы спокойно сделали наследника, переопределили часть методов, добавили свои.
Потом вышло обновление, где я какой-нибудь из методов сделал private, или добавил обязательных параметров. 
И всё, у вас fatal каждый раз при использовании вашего класса.
Если это ваш портал с какими-то специфическими доработками - можно оперативно исправить и ущерба будет немного.
А вдруг кто-нибудь сделает приложение со своим наследником? 
Одна из проблем битрикса, как продукта - это большое legacy. А большое legacy обусловлено политикой максимальной обратной совместимости. Поддержка обратной совместимости замедляет скорость обновления кода.
Проставив final, я, в первую очередь, оставляю себе возможность вносить изменения в классы без оглядки на пользовательский код. 
Говорю только за себя, но коллеги часто руководствуются этим же принципом. 
Если у вас есть какие-то потребности, которые нельзя перекрыть без наследования - пишите, что-нибудь придумаем.