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

Что такое принцип Барбаре Лисков (Liskov Substitution Principle)

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

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

python
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height
    
    def area(self):
        return self.width * self.height

class Square(Rectangle):
def init(self, side):
super().init(side, side)

text
def set_width(self, width):
    self.width = self.height = width

def set_height(self, height):
    self.width = self.height = height
text

Здесь Square изменяет поведение Rectangle (изменяет оба измерения при изменении одного), что может вызвать проблемы, если код ожидает независимого изменения ширины и высоты. Правильнее было бы не наследовать Square от Rectangle.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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