Introduction
Inheritance lets you build new code using existing code. This saves time and avoids repeating the same work.
When you want to create a new smart contract that shares features with an existing one.
When you want to add new abilities to a contract without rewriting old code.
When you want to fix or improve common code in one place and have all related contracts use the update.
When you want to organize your contracts in a clear, logical way by grouping shared code.
When you want to save gas by reusing tested and optimized code instead of copying it.