Liskov Substitution Principle
Substitutability is a principle in object-oriented programming. It states that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T) without altering any of the desirable properties of that program (correctness, task performed, etc.). More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address entitled Data abstraction and hierarchy. It is a semantic rather than merely syntactic relation because it intends to guarantee semantic interoperability of types in a hierarchy, object types in particular. Liskov and Jeannette Wing formulated the principle succinctly in a 1994 paper as follows:
- Let be a property provable about objects of type . Then should be provable for objects of type where is a subtype of .
In the same paper, Liskov and Wing detailed their notion of behavioral subtyping in an extension of Hoare logic, which bears a certain resemblance with Bertrand Meyer's Design by Contract in that it considers the interaction of subtyping with pre- and postconditions.
Read more about Liskov Substitution Principle: Principle, Origins, A Typical Violation
Famous quotes containing the words substitution and/or principle:
“Virtue is the adherence in action to the nature of things, and the nature of things makes it prevalent. It consists in a perpetual substitution of being for seeming, and with sublime propriety God is described as saying, I A.”
—Ralph Waldo Emerson (18031882)
“The world is not dialecticalit is sworn to extremes, not to equilibrium, sworn to radical antagonism, not to reconciliation or synthesis. This is also the principle of evil.”
—Jean Baudrillard (b. 1929)