Liskov Substitution Principle
E232907
The Liskov Substitution Principle is an object-oriented design rule stating that objects of a superclass should be replaceable with objects of a subclass without altering the correctness of a program.
All labels observed (1)
| Label | Occurrences |
|---|---|
| Liskov Substitution Principle canonical | 3 |
Statements (45)
| Predicate | Object |
|---|---|
| instanceOf |
SOLID principle
ⓘ
object-oriented design principle ⓘ software engineering principle ⓘ |
| abbreviation | LSP ⓘ |
| aimsTo |
enable safe reuse of code
ⓘ
improve software maintainability ⓘ improve software robustness ⓘ |
| appliesTo |
API design
ⓘ
class hierarchies ⓘ interface implementations ⓘ |
| author |
Barbara Liskov
ⓘ
Jeannette M. Wing ⓘ
surface form:
Jeannette Wing
|
| category |
program correctness principle
ⓘ
software design rule ⓘ |
| contrastsWith | implementation inheritance without behavioral compatibility ⓘ |
| coreIdea | objects of a superclass should be replaceable with objects of a subclass without affecting program correctness ⓘ |
| emphasizes |
behavioral compatibility between supertype and subtype
ⓘ
what a subtype must guarantee to its clients ⓘ |
| field |
object-oriented programming
ⓘ
software design ⓘ |
| focusesOn |
behavioral subtyping
ⓘ
substitutability of types ⓘ |
| hasConsequence |
subtypes should not remove expected behavior of supertypes
ⓘ
subtypes should not strengthen method argument requirements ⓘ subtypes should not weaken method result guarantees ⓘ |
| influenced |
best practices for inheritance usage
ⓘ
modern object-oriented design guidelines ⓘ |
| introducedBy | Barbara Liskov ⓘ |
| introducedInContextOf | behavioral notion of subtyping ⓘ |
| namedAfter | Barbara Liskov ⓘ |
| partOf | SOLID principles ⓘ |
| publicationYear | 1994 ⓘ |
| relatedTo |
design by contract
ⓘ
inheritance ⓘ polymorphism ⓘ type safety ⓘ |
| requires |
invariants of a supertype must be preserved by its subtype
ⓘ
postconditions of a subtype must be at least as strong as those of its supertype ⓘ preconditions of a subtype must not be stronger than those of its supertype ⓘ subclasses must honor the contracts of their superclasses ⓘ |
| statedIn | A Behavioral Notion of Subtyping ⓘ |
| usedIn |
object-oriented programming languages
ⓘ
software architecture design ⓘ |
| violationsCause |
broken polymorphic behavior
ⓘ
unexpected runtime errors ⓘ |
Referenced by (3)
Full triples — surface form annotated when it differs from this entity's canonical label.
Agile Software Development, Principles, Patterns, and Practices
→
explainsConcept
→
Liskov Substitution Principle
ⓘ