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

Приведи пример нарушения принципа Барбары Лисков

Нарушение LSP (Liskov Substitution Principle) возникает, когда подкласс изменяет поведение родительского класса. Например:

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!
}

text
@Override
void setHeight(int h) { 
    width = height = h; // Нарушение LSP!
}

}

text

Проблема: клиентский код, ожидающий `Rectangle`, сломается при работе с `Square`, так как изменение ширины/высоты ведёт себя иначе. Квадрат не должен наследовать от прямоугольника, так как нарушает контракт базового класса.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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