Назад к вопросам
Middle
1
Принцип Liskov Substitution — расскажите подробнее
Компании, где спрашивали
Navio
Ответ от нейросети
sobes.tech AI
Принцип подстановки Лисков (Liskov Substitution Principle, LSP) — один из пяти принципов SOLID, который гласит, что объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения корректности программы.
Это значит, что если класс B наследуется от класса A, то везде, где ожидается объект A, можно использовать объект B без изменения поведения программы.
Нарушение LSP приводит к неожиданным ошибкам и усложняет поддержку кода.
Пример нарушения LSP в Python:
class Bird:
def fly(self):
print("I can fly")
class Ostrich(Bird):
def fly(self):
raise Exception("I can't fly")
# Использование
birds = [Bird(), Ostrich()]
for bird in birds:
bird.fly() # Ошибка для страуса
Здесь Ostrich наследует Bird, но не поддерживает метод fly, что нарушает LSP. Правильнее было бы спроектировать иерархию иначе, например, выделить летающих птиц в отдельный класс.