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

Что такое принцип подстановки Барбары Лисков

Принцип подстановки Лисков (LSP) гласит, что объекты родительского класса должны быть заменяемы объектами дочерних классов без нарушения работы программы. Это один из принципов SOLID.

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

typescript
class Rectangle {
  width: number;
  height: number;

setWidth(w: number) { this.width = w; }
setHeight(h: number) { this.height = h; }
}

class Square extends Rectangle {
setWidth(w: number) {
this.width = w;
this.height = w; // Нарушение LSP - изменяет поведение родителя
}
}

function testRectangle(rect: Rectangle) {
rect.setWidth(5);
rect.setHeight(4);
console.log(rect.width * rect.height); // Ожидается 20, но для Square будет 16
}

text

Ключевые моменты:
- Дочерний класс не должен ужесточать предусловия
- Не должен ослаблять постусловия
- Должен сохранять все инварианты родителя
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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