Встречается на собеседованиях • сегодня
Приведи пример применения принципа подстановки Барбары Лисков
Принцип подстановки Лисков (LSP) гласит, что подклассы должны заменять базовые классы без изменения корректности программы.
Пример:
java
class Rectangle {
protected int width;
protected int height;
public void setWidth(int width) {
this.width = width;
}
text
public void setHeight(int height) {
this.height = height;
}
public int getArea() {
return width * height;
}}
class Square extends Rectangle {
@Override
public void setWidth(int width) {
this.width = width;
this.height = width;
}
text
@Override
public void setHeight(int height) {
this.width = height;
this.height = height;
}}
text
**Проблема:** `Square` нарушает LSP, так как изменение ширины влияет на высоту, что неожиданно для кода, работающего с `Rectangle`.
**Решение:** Не наследовать `Square` от `Rectangle`, а использовать общий интерфейс `Shape` с методом `getArea()`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы