Встречается на собеседованиях • сегодня

Достаточно ли пометить класс как final, чтобы от него нельзя было наследоваться

Да, пометив класс как final, вы запрещаете наследование от него. Это означает, что никакой другой класс не сможет его расширить. Однако, это не защищает от других способов изменения поведения, например, через композицию или рефлексию.

Пример:

java
final class Parent {
    void show() {
        System.out.println("Final class method");
    }
}

// Ошибка компиляции: Cannot inherit from final 'Parent'
class Child extends Parent { 
    // ...
}

Если нужно полностью запретить модификацию, стоит также скрывать конструкторы (например, сделать их private) и контролировать создание экземпляров.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы