Встречается на собеседованиях • сегодня
Что такое Liskov Substitution Principle
Принцип подстановки Барбары Лисков (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) {
super.setWidth(w);
super.setHeight(w); // Нарушение LSP - изменяет поведение
}
text
@Override
void setHeight(int h) {
super.setHeight(h);
super.setWidth(h); // Нарушение LSP
}}
text
Код, работающий с Rectangle, ожидает независимого изменения ширины и высоты. Square нарушает этот контракт, что может привести к ошибкам. Правильное решение - не наследовать Square от Rectangle.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы