Встречается на собеседованиях • сегодня
Насколько легко соблюдать принцип подстановки Барбары Лисков
Принцип подстановки Лисков (LSP) гласит, что подклассы должны быть взаимозаменяемы с родительскими классами без нарушения логики программы. Соблюдать его не всегда просто, особенно при сложных иерархиях.
Сложности:
- Нарушение контракта: например, подкласс изменяет поведение родителя (бросает исключения, возвращает null вместо ожидаемого значения).
- Жесткие иерархии: наследование "для переиспользования кода" без учета семантики.
Пример нарушения LSP:
java
class Rectangle {
protected int width, height;
void setWidth(int w) { width = w; }
void setHeight(int h) { height = h; }
}
class Square extends Rectangle {
@Override void setWidth(int w) {
width = height = w; // Нарушение LSP!
}
}Здесь Square не может заменить Rectangle, так как изменяет его поведение.
Как соблюдать:
- Использовать композицию вместо наследования, если семантика отличается.
- Четко определять контракты (инварианты, постусловия).
- Избегать переопределения методов, меняющих логику родителя.
LSP требует тщательного проектирования, но соблюдение упрощает поддержку и расширение кода.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы