Back to questions
Junior — Middle
81
Какой из принципов объектно-ориентированного программирования соприкасается с принципом Лисков по подстановке?
Answer from AI
sobes.tech AI
Принцип Лисков по подстановке (Liskov Substitution Principle, LSP) относится к принципам объектно-ориентированного программирования и тесно связан с принципом наследования. Он гласит, что объекты подкласса должны быть взаимозаменяемы с объектами базового класса без нарушения корректности программы.
То есть, если класс B наследуется от класса A, то объекты класса B должны вести себя так, чтобы их можно было использовать вместо объектов класса A без неожиданных ошибок или изменений в поведении.
Это помогает создавать иерархии классов, где подклассы расширяют функциональность базовых классов, не нарушая их контракт.
Пример:
class Bird {
void fly() {
print('Птица летит');
}
}
class Sparrow extends Bird {
@override
void fly() {
print('Воробей летит');
}
}
// Нарушение LSP, если подкласс не может летать
class Ostrich extends Bird {
@override
void fly() {
throw Exception('Страус не умеет летать');
}
}
Здесь Ostrich нарушает принцип Лисков, так как не может заменить Bird без изменения поведения.