Принцип замещения Лискова (LSP) - это принцип объектно-ориентированного программирования, один из принципов SOLID.

Принцип подстановки Лискова - это принцип объектно-ориентированного программирования. В нем говорится, что должна быть возможность заменить экземпляр типа экземпляром подтипа, не затрагивая требуемые свойства экземпляра.

Например, предположим, у нас есть класс Animal у этого есть метод walk()с подклассом Dog что наследует walk(),
В следующем фрагменте тип времени выполнения x не известно

Animal x;
x = AnimalFactory.createAnimal(some_parameter);
x.walk();

Хотя Dog.walk() может переопределить Animal.walk()и иметь более конкретное поведение, это не должно иметь значения для правильности программы, является ли x экземпляром Animal или экземпляр Dog,

Этот принцип был создан Барбарой Лисков в 1987 году. Роберт К. Мартин позже включил его в свои твердые принципы.

Статья в википедии