Программисты (даже гуру Java) не согласны с этим.
Джош Блох, который разработал библиотеку Java Collections, java.Math, assert
и является главным архитектором Java в Google (или был до того, как нанял Гослинга), имеет раздел своей книги «Эффективная Java», посвященный этой проблеме , Я согласен с тем, что он говорит:
Пункт 17: Дизайн и документ для наследования или иначе запретить
Он указывает, что подклассы классов, которые не были предназначены для этого, часто приводят к катастрофе.
Кроме того, проектирование наследования обходится дорого.
- Это накладывает серьезные ограничения на то, что может делать ваш класс
- Вы должны написать больше документации, чтобы авторы подкласса знали, как общедоступные методы используются классом внутри
- Вы должны проверить это. Это требует тестирования написания подклассов
Вы всегда можете передумать и сделать что-то не окончательное. Вы не можете сделать что-то окончательное, чтобы не быть окончательным.
Прочтите «Эффективная Java», это делает этот аргумент гораздо более убедительным. Это также сделает вас лучшим программистом.