La sustitución de Liskov es un principio de programación orientada a objetos que estipula que los objetos de una subclase deben poder reemplazar a los de la clase base sin afectar el funcionamiento del programa. Promueve la reutilización de código, mejora el mantenimiento y garantiza un comportamiento predecible. Es crucial que las subclases cumplan con los contratos de las superclases para evitar errores y comportamientos inesperados.