Polymorphism is a core concept in object-oriented programming (OOP) that allows objects of different classes to be treated as objects of a common superclass. It enables a single interface to represent different underlying forms (data types). There are two main types of polymorphism:
Compile-time Polymorphism (Static Binding)
Achieved through method overloading or operator overloading.
The method to be invoked is determined at compile time.