Как связаны принцип Барбары Лисков и полиморфизм

Python Middle Без компании
Как связаны принцип Барбары Лисков и полиморфизм
Ответы
Принцип подстановки Барбары Лисков (LSP) гласит, что объекты подклассов должны быть взаимозаменяемы с объектами родительского класса без нарушения корректности программы. Это напрямую связано с полиморфизмом, так как LSP обеспечивает его корректную работу. **Пример:** ``` class Bird: def fly(self): pass class Duck(Bird): def fly(self): print("Duck flying") class Penguin(Bird): # Нарушение LSP, т.к. пингвины не летают def fly(self): raise NotImplementedError("Penguins can't fly") ``` Здесь `Penguin` нарушает LSP, так как не может заменить `Bird` без ошибок. Полиморфизм требует, чтобы подклассы сохраняли поведение родителя.