Описание тега lsp
Принцип замещения Лискова (LSP) - это принцип объектно-ориентированного программирования, один из принципов SOLID.
Принцип подстановки Лискова - это принцип объектно-ориентированного программирования. В нем говорится, что должна быть возможность заменить экземпляр типа экземпляром подтипа, не затрагивая требуемые свойства экземпляра.
Например, предположим, у нас есть класс Animal
у этого есть метод walk()
с подклассом Dog
что наследует walk()
,
В следующем фрагменте тип времени выполнения x
не известно
Animal x;
x = AnimalFactory.createAnimal(some_parameter);
x.walk();
Хотя Dog.walk()
может переопределить Animal.walk()
и иметь более конкретное поведение, это не должно иметь значения для правильности программы, является ли x экземпляром Animal
или экземпляр Dog
,
Этот принцип был создан Барбарой Лисков в 1987 году. Роберт К. Мартин позже включил его в свои твердые принципы.