Polymorphism is one of the essential OOPs feature that can be defined as “ability to take multiple forms”. Programming languages such as Java, C++ use method overloading and method overriding to implement this OOPs feature.
However, it can be classified into Static and Dynamic polymorphism ( Runtime Polymorphism ) . The main difference between them is, one is resolved at compile-time and other resolved at run time.
Basis | Static Polymorphism | Runtime Polymorphism |
---|---|---|
Definition | It can be defined as a process in which a function call with an object resolve at compile time by the compiler | It can be defined as a process in which a function call with an object resolve at runtime |
Call Resolution | Call is settled by the compiler | Call isn't settled by the compiler |
Other Name | Compile-time Polymorphism and Early binding | Dynamic binding and Late binding |
Achieved By | Function overloading and Operator overloading | Pointers and virtual functions |
Execution | It is analyzed early at compile time so it provides fast execution | It is slow because it is analyzed at the runtime |
Flexibility | It is managed and executed at compile time which makes it less flexible | It is more flexible because of its execution at runtime |
Static polymorphism is additionally termed as compile-time polymorphism, which implies that one can write numerous methods in a program with the same name, performing distinctive tasks.
However, it gives the client or the software engineer efficient and better comprehensibility of code.
This is otherwise called Dynamic Polymorphism. It is a procedure in which a call to an overridden method is settled at runtime, which is the reason it is termed as runtime polymorphism.
Note: If you think, anything is wrong with the article, please inform us at inform@programmerbay.com
This post was last modified on November 27, 2020