Polymorphism
Dynamic polymorphism
Dynamic polymorphism is the mechanism that defines the methods with the same name, return type, and parameters in the base class and derived classes.
Static polymorphism
Static polymorphism is also known as compile-time polymorphism, and it is achieved by method overloading or operator overloading.
Method overloading
Methods are said to be overloaded if a class has more than one method with the same name, but either the number of arguments is different, or the type of arguments is different.