The ability to handle different objects using the same interface is called polymorphism. This provides developers with the ability to build flexibility into applications by writing a single piece of functionality that can be applied to different forms as long as they share a common interface. There are different definitions of polymorphism in OOP, and we will distinguish between two main types:
- Static or early binding: This form of polymorphism happens when the application is compiled.
- Dynamic or late binding: This form of polymorphism happens when the application is running.