Introduction
Inheritance helps us create new things based on old ones. Types make sure these new things behave correctly and safely.
When you want to build a new class that shares features with an existing class.
When you want to make sure the new class follows the rules of the old class.
When you want to catch mistakes early by checking types before running the program.