Introduction
Inheritance lets one class get features from another class. It helps reuse code and organize related things together.
When you want to create a new class that is a type of an existing class.
When you want to share common code between classes to avoid repeating it.
When you want to build a clear relationship between general and specific things.
When you want to extend or customize behavior of an existing class.
When you want to group similar objects under a common interface.