Introduction
Polymorphism lets different objects use the same action name but do different things. It helps write flexible and simple code.
When you have different types of animals and want each to make its own sound using the same method name.
When you want to handle different shapes and calculate their areas using one method name.
When you want to write code that works with many types of objects without changing the code.
When you want to add new types without changing existing code.
When you want to organize code so similar actions share the same name but behave differently.