Встречается на собеседованиях • сегодня
Как нарушить принцип Лисков
Нарушение принципа подстановки Лисков (LSP) происходит, когда подкласс изменяет поведение родительского класса так, что это ломает ожидаемую логику.
Пример:
java
class Rectangle {
protected int width;
protected int height;
public void setWidth(int width) { this.width = width; }
public void setHeight(int height) { this.height = height; }
public int area() { return width * height; }
}
class Square extends Rectangle {
@Override
public void setWidth(int width) {
super.setWidth(width);
super.setHeight(width); // Нарушение LSP!
}
text
@Override
public void setHeight(int height) {
super.setHeight(height);
super.setWidth(height); // Нарушение LSP!
}}
text
Здесь `Square` нарушает контракт `Rectangle`, где ширина и высота изменяются независимо. Код, ожидающий `Rectangle`, сломается при работе с `Square`, так как изменение одного измерения повлияет на другое. Правильное решение - не наследовать `Square` от `Rectangle`, а использовать композицию или общий интерфейс.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы