Polymorphism
Polymorphism
P O LY M O R P H I S M A N D I T S
I M P L E M E N TAT I O N
1
CONTENTS
• What is polymorphism?
• Types of polymorphism
• Method Overloading
• Run-Time Polymorphism
• Advantages of Polymorphism
• Disadvantages of Polymorphism
• Thank You
2
P O LY M O R P H I S M
The word polymorphism means having many forms. In simple words, we can define Java Polymorphism as the
ability of a message to be displayed in more than one form. In this article, we will learn what is polymorphism and
it’s type.
Real-life Illustration of Polymorphism in Java: A person at the same time can have different characteristics. Like
a man at the same time is a father, a husband, and an employee. So the same person possesses different
behaviors in different situations. This is called polymorphism.
• Compile-time Polymorphism
• Runtime Polymorphism
C O M P I L E - T I M E P O LY M O R P H I S M I N J A V A
When there are multiple functions with the same name but different parameters then these functions are said to
be overloaded. Functions can be overloaded by changes in the number of arguments or/and a change in the type of
arguments.
// Java Program for Method overloading
// By using Different Types of Arguments
// Class 1
// Helper class
class Helper {
// Method 2
// With same name but with 2 double parameters
static double Multiply(double a, double b)
{
// Returns product of double numbers
return a * b;
}
}
// Class 2
// Main class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Calling method by passing
// input as in arguments
System.out.println(Helper.Multiply(2, 4));
System.out.println(Helper.Multiply(5.5, 6.3));
}
}
S U B T Y P E S O F C O M P I L E T I M E P O LY M O R P H I S M
1. Function Overloading
It is a feature in C++ where multiple functions can have the same name but with different parameter lists.
The compiler will decide which function to call based on the number and types of arguments passed to
the function.
2. Operator Overloading
It is a feature in C++ where the operators such as +, -, *, etc. can be given additional meanings when
applied to user-defined data types.
3. Template
it is a powerful feature in C++ that allows us to write generic functions and classes. A template is a
blueprint for creating a family of functions or classes.
// Java Program for Method Overriding
R U N T I M E P O LY M O R P H I S M I N J A V A // Class 1
// Helper class
class Parent {
// Print statement
System.out.println("parent class");
// Class 2
// Method
a = new subclass1();
a.Print();
a = new subclass2();
a.Print();
}
S U B T Y P E O F R U N - T I M E P O LY M O R P H I S M
i. Virtual functions
It allows an object of a derived class to behave as if it were an object of the base class. The derived class can
override the virtual function of the base class to provide its own implementation. The function call is resolved at
runtime, depending on the actual type of the object.