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

Что такое L в SOLID

L в SOLID — это Принцип подстановки Барбары Лисков (Liskov Substitution Principle, LSP).

Суть: объекты родительского класса должны быть заменяемы объектами дочерних классов без нарушения работы программы.

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

java
class Rectangle {
    protected int width, height;
text
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
Здесь `Square` нарушает LSP, так как его `setWidth` изменяет и высоту, что неожиданно для кода, работающего с `Rectangle`.  

**Как исправить:**  
Лучше не наследовать `Square` от `Rectangle`, а использовать общий интерфейс, например, `Shape` с методом `area()`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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