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

Расскажи про принцип Барбары Лисков

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

Пример нарушения LSP:

java
class Rectangle {
    protected int width, height;
    
    void setWidth(int w) { width = w; }
    void setHeight(int h) { height = h; }
    int area() { return width * height; }
}

class Square extends Rectangle {
    @Override
    void setWidth(int w) { 
        width = height = w; // Нарушение LSP - меняет поведение родителя
    }
    
    @Override
    void setHeight(int h) {
        width = height = h; // Нарушение LSP
    }
}

Здесь Square изменяет базовое поведение Rectangle (установка ширины влияет на высоту), что может сломать код, ожидающий работы с прямоугольником. Правильное решение - не наследовать Square от Rectangle.

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

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

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

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