# Broken Inheritance

> A subclass that violates its base type's contract, for example by an override that changes the expected inputs or outputs, so substituting it breaks callers that rely on the base behavior.

Record: `lexicon:broken-inheritance`
Kind: anti-pattern
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Aliases: Incompatible Override
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-broken-inheritance

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Specialized Optimization](https://banes-lab.com/records/lexicon/specialized-optimization.md) and before [Concrete Dependency](https://banes-lab.com/records/lexicon/concrete-dependency.md).

## Category

- [SOLID / Object-Oriented Design](https://banes-lab.com/records/lexicon-category/solid-object-oriented-design.md)

## Negated by

- [Liskov Substitution Principle](https://banes-lab.com/records/architecture/liskov-substitution.md)

## Linked from

- [SOLID / Object-Oriented Design](https://banes-lab.com/ontology/principles/architecture-category-solid-object-oriented-design.md)
