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

В каких случаях нельзя наследоваться от класса

  1. Класс объявлен как final
    Пример:

    java
    final class FinalClass { }  
    // Ошибка компиляции: Cannot inherit from final 'FinalClass'  
    class SubClass extends FinalClass { }  
  2. Класс имеет приватный конструктор
    Если у класса все конструкторы приватные, его нельзя унаследовать.
    Пример:

    java
    class PrivateConstructor {  
        private PrivateConstructor() { }  
    }  
    // Ошибка: 'PrivateConstructor()' has private access  
    class Child extends PrivateConstructor { }  
  1. Класс находится в другом пакете и не объявлен public или protected
    Если класс имеет модификатор доступа по умолчанию (package-private), его нельзя наследовать из другого пакета.

  2. Нарушение принципов ООП
    Если наследование нарушает LSP (принцип подстановки Барбары Лисков), например, когда подкласс не может заменить родительский класс без изменения логики программы.

  3. Sealed-классы (Java 17+)
    Если класс объявлен как sealed и не разрешает наследование определенным классам.
    Пример:

    java
    sealed class Parent permits Child1, Child2 { }  
    // Только Child1 и Child2 могут наследовать Parent  
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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