Использование ключевого слова final для предотвращения наследования
Иногда будет требоваться предотвратить наследование класса. Для этого в начале объявления класса необходимо поместить ключевое слово final. Объявление класса как final неявным образом объявляет все его методы также как final. Как легко догадаться, одновременное объявление класса как abstract и как final недопустимо, поскольку абстрактный класс принципиально является незавершенным и только его подклассы предоставляют полную реализацию методов.
Ниже приведен пример класса типа final.
final class А {
// ...
}
// Следующий класс недопустим.
class В extends А {
// ОШИБКА! Класс А не может иметь подклассы.
// ...
}
Как видно из комментария, класс в не может наследовать от класса А, поскольку А объявлен как final.