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