Встречается на собеседованиях • сегодня
Что такое 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()`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы