Ability of an object or function to take many forms.
- Function Overloading
- Function Hierarchy
- Function Overwriting
- Operator Overloading
- Virtual Functions Commonly occurs when a parent class reference is used to refer to a child class object Typecasting.
instanceof
is very useful to check if a typecast was successful