El Principio de Sustitución de Liskov

El principio nos dice que;
'Cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas'.
El Principio de Sustitución de Liskov
El Principio de Sustitución de Liskov fue acuñado por Bárbara Liskov (de ahí el nombre del principio) en el año 1987 durante una conferencia sobre Jerarquía y Abstracción de datos. Su principal cometido es la de asegurar en la herencia entre clases de la Programación Orientada a Objetos que una clase derivada no únicamente es sino que debe comportarse como la clase base. Su definición es:
"Debe ser posible utilizar cualquier objeto instancia de una subclase en lugar de cualquier objeto instancia de su superclase sin que la semántica del programa escrito en los términos de la superclase se vea afectado"
El Principio de Sustitución de Liskov

Definiciones Alternas:
- Cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas
- Toda subclase debe soportar ser sustituida por su clase base lo que en términos de contratos significa que las precondiciones de los métodos de la subclase no serán más fuertes que las de la clase base, y sus pos condiciones no serán más débiles (en el lenguaje de la calle: los métodos derivados no deben esperar más ni proveer menos que los originales).
Idea importante
En lenguajes OO como C# o VB.NET, la clave para conseguir la abstracción y polimorfismo de entidades es mediante la herencia, y es precisamente en esta característica en la que se basa el Principio de Sustitución de Liskov (Liskov Substitution Principle, LSP). El principio indica cuáles son los fundamentos básicos de diseño que debe seguir la herencia en un caso particular, o cuál es la mejor forma de crear jerarquías de herencia entre clases. Porque el hecho de que una clase herede de otra, no asegura que se cumple el principio LSP, si no se respetan también sus "contratos de diseño"

Ejemplo Que Cumple El Principio De LISKOV
LSP es básicamente una extensión del principio abierto-cerrado. Lo que nos dice es que si tenemos una clase y varias subclases de esta al usar una referencia a la clase principal esta debe ser capaz de aceptar cualquier objeto de sus clases hijas.
Diagrama De Clases

Codigo


Principio de Sustitución Liskov
By Cesar Gustavo Martinez Hoyos
Principio de Sustitución Liskov
- 672