Что такое Liskov Substitution Principle (LSP)?

Ответ

Подтипы должны быть подставляемы вместо базового типа без нарушения корректности программы. Поведение подкласса не должно противоречить контракту базового класса.

Пример нарушения: Rectangle и Square. Если Square переопределяет setWidth/setHeight так, что меняет и другую сторону - код, ожидающий Rectangle (независимые стороны), сломается при подстановке Square.

Следствие: подкласс не должен ужесточать предусловия или ослаблять постусловия.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.