Polymorphism
The last core pillar of object-oriented programming is polymorphism. Polymorphism is a Greek word that stands for multiple forms. This is the ability to use one entity in multiple forms. There are two types of polymorphism:
- Compile-time polymorphism: When we have methods with the same name but different numbers or types of parameters, which is called method overloading.
- Run-time polymorphism: This has two different aspects:
On one hand, Objects of derived classes can be seamlessly used as objects of base classes in arrays or other types of collections, method parameters, and other places.
On the other hand, Classes can define virtual methods that can be overridden in derived classes. At runtime, the Common Language Runtime (CLR) will invoke the implementation of the virtual member corresponding to the runtime type of the object. An object's declared type and its runtime type differ when objects of derived classes are used in place of objects of base classes...