Может ли удаление final из определения класса нарушить обратную совместимость?

Я ' Я сейчас читаю «Эффективная Java» Джошуа Блоха, а пункт 17 - «Разработайте и задокументируйте наследование, иначе запретите это». Автор предлагает по умолчанию запретить наследование.

Безопасно ли объявлять классы final по умолчанию, а в более поздних версиях удалять ключевое слово final, если есть необходимость в расширении класса? Не нарушит ли это обратную совместимость с кодом, который был скомпилирован с предыдущей версией?

Если это так, то кажется более безопасным сделать все классы окончательными и удалить его в будущем выпуске только при наличии хорошо поддерживаемого требования.

6
задан linuxbuild 17 April 2011 в 17:08
поделиться