"Substitutability" redirects here. For the economic principle, see Substitute good.
This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations.(October 2018) (Learn how and when to remove this message)
SOLID
Principles
Single responsibility
Open–closed
Liskov substitution
Interface segregation
Dependency inversion
v
t
e
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 titled Data abstraction and hierarchy. It is based on the concept of "substitutability" – a principle in object-oriented programming stating that an object (such as a class) may be replaced by a sub-object (such as a class that extends the first class) without breaking the program. 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. Barbara Liskov and Jeannette Wing described the principle succinctly in a 1994 paper as follows:[1]
Subtype Requirement: Let be a property provable about objects of type T. Then should be true for objects of type S where S is a subtype of T.
Symbolically:
That is, if S subtypes T, what holds for T-objects holds for S-objects.
In the same paper, Liskov and Wing detailed their notion of behavioral subtyping in an extension of Hoare logic, which bears a certain resemblance to Bertrand Meyer's design by contract in that it considers the interaction of subtyping with preconditions, postconditions and invariants.
^Liskov, Barbara; Wing, Jeannette (1994-11-01). "A behavioral notion of subtyping". ACM Transactions on Programming Languages and Systems. 16 (6): 1811–41. doi:10.1145/197320.197383. S2CID 999172.
and 18 Related for: Liskov substitution principle information
The Liskovsubstitutionprinciple (LSP) is a particular definition of a subtyping relation, called strong behavioral subtyping, that was initially introduced...
abstract data types and the accompanying principle of data abstraction, along with the Liskovsubstitutionprinciple, which applies these ideas to object-oriented...
Open–closed principle: "Software entities ... should be open for extension, but closed for modification." The Liskovsubstitutionprinciple: "Functions...
Substitutionprinciple can refer to several things: Substitutionprinciple (mathematics) Substitutionprinciple (sustainability) Liskovsubstitution principle...
programmers do with inheritance in Java" Delegation pattern Liskovsubstitutionprinciple Object-oriented design Object composition Role-oriented programming...
types is usually one which allows substitution of the one type with the other, following the Liskovsubstitutionprinciple. This usually implies that the...
and talks like a duck, it should be taxed like a duck. The LiskovSubstitutionPrinciple in computer science is sometimes expressed as a counter-example...
programming. In this context, the principle of safe substitution is often called the Liskovsubstitutionprinciple, after Barbara Liskov who popularized it in a...
refer to: A minor premise in symbolic logic (see syllogism) The Liskovsubstitutionprinciple in object-oriented programming Subtyping in programming language...
latent type) or a supertype thereof. This is conformant with the Liskovsubstitutionprinciple, which states that all operations performed on an instance of...
Generalized algebraic data type Initial algebra Liskovsubstitutionprinciple Type theory Walls and Mirrors Liskov & Zilles 1974. Ehrig, H. (1985). Fundamentals...
the dependency inversion principle is a specific methodology for loosely coupled software modules. When following this principle, the conventional dependency...
In the field of software engineering, the interface segregation principle (ISP) states that no code should be forced to depend on methods it does not...
information generated by a network router Liskovsubstitutionprinciple, object-oriented programming principle Logical Standby Process, a system in Oracle...
cannot have definiteness and unfoldability at the same time. Liskovsubstitutionprinciple Rewrite rule A linguistic construction (also called mode of...
software for the Apollo's Missions to Space. Barbara Liskov: developed the "Liskovsubstitutionprinciple." Radia Perlman: invented the "Spanning Tree Protocol"...
is substituted for o2{\displaystyle o_{2}}, then S is a subtype of T." This characterization has since been widely known as the LiskovSubstitution Principle...
cybernetics and artificial intelligence. 1987 Liskov, Barbara Developed the Liskovsubstitutionprinciple, which guarantees semantic interoperability of...