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.

Try in SPARQL Jump to: Surface forms Statements Referenced by

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.

Single Responsibility Principle relatedTo Liskov Substitution Principle
Open-Closed Principle relatedTo Liskov Substitution Principle