# Replace Inheritance with Delegation

> A technique for replacing a subclass with a class that holds the former base as a field and forwards to it.

Record: `lexicon:replace-inheritance-with-delegation`
Kind: technique
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-replace-inheritance-with-delegation

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Split Interface](https://banes-lab.com/records/lexicon/split-interface.md) and before [Split Hierarchy](https://banes-lab.com/records/lexicon/split-hierarchy.md).

## Category

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

## Refactors

- [Composition Over Inheritance](https://banes-lab.com/records/architecture/composition-over-inheritance.md)
- [Liskov Substitution Principle](https://banes-lab.com/records/architecture/liskov-substitution.md)

## Linked from

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