Junior — Middle
61
Мұрагерлік немесе ұрпақ ауыстыру кезінде Лисков қағидаты бұзылатын жағдайдың мысалын келтіре аласыз ба?
AI-дан жауап
sobes.tech AI
Принцип подстановки Лисков (Liskov Substitution Principle, LSP) нарушается, когда подкласс изменяет поведение базового класса так, что объекты подкласса не могут заменить объекты базового класса без изменения корректности программы.
Пример на Python:
class Bird:
def fly(self):
print("Я лечу")
class Sparrow(Bird):
pass
class Ostrich(Bird):
def fly(self):
raise Exception("Страус не умеет летать")
# Использование
birds = [Sparrow(), Ostrich()]
for bird in birds:
bird.fly() # Здесь Ostrich нарушает LSP, так как вызывает исключение вместо полёта
Здесь класс Ostrich наследует Bird, но метод fly ведёт себя иначе — выбрасывает исключение, тогда как базовый класс предполагает, что метод fly всегда работает. Это нарушает LSP, так как код, работающий с объектами Bird, не сможет корректно работать с Ostrich.