# How to inherit ERC2771ContextUpgradeable?

**URL:** <https://forum.openzeppelin.com/t/how-to-inherit-erc2771contextupgradeable/30794>\
**Category:** Upgrades\
**Created:** [July 31, 2022, 9:22am UTC](https://forum.openzeppelin.com/t/how-to-inherit-erc2771contextupgradeable/30794 "2022-07-31T09:22:17Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![ericglau](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/ericglau/32/15149_2.png) [@ericglau](https://forum.openzeppelin.com/u/ericglau)\
**Post date:** [December 9, 2022, 2:57pm UTC](https://forum.openzeppelin.com/t/how-to-inherit-erc2771contextupgradeable/30794/8 "2022-12-09T14:57:21Z")

</div>

The constructor with `_disableInitializers()` runs on the implementation contract, whereas the `initialize()` function runs in the context of the proxy. See [Is \_disableInitializers necessary? - #2 by ericglau](https://forum.openzeppelin.com/t/is-disableinitializers-necessary/31070/2) for reasoning.

> In any case, I've included `_disableInitializers();` in my parent `constructor` , should I also include it in the child `constructor` as well

If it's already in the parent, it's not necessary to include it in the child.

---

_[View the full topic](https://forum.openzeppelin.com/t/how-to-inherit-erc2771contextupgradeable/30794)._
