Compile time polymorphism
Compile time polymorphism or static polymorphism
- This polymorphism is used to happen at compile time.
- The best example of compile time polymorphism is method overloading
Method overloading
- In a class one or more methods having same name and different type of parameters or arguments.
Arguments may differ in overloading as follows
- Number of parameters or count of parameters
- Type of parameters
- Order of parameters
1. Number of parameters
- In a class one or more methods having same name and number of parameters are different.
- Below method1 in a class Demo1 having polymorphic nature.
- All method names same but number of arguments are different.
Rules for overloading
- Overloading can happen in same class or in its sub class.
- Even in any sub class also overloading concept can exists.
- Overloading concept not only for methods it will applicable for constructors also.
- In overloading methods have different arguments.
- return type is not part of overloading, so it can be same or different.
- Parameters of the arguments are different in terms of, number of parameters, type of parameters and order of parameters.
- Another name for overloading is compile time polymorphism.
---------------------------------------------------------------------------------------------------
Program : Overloading based on number of parameters
Output :
method1 have no parameter
method1 have one parameter
method1 have two parameters
class Demo1
{
public void method1()
{
System.out.println(“method1 have no parameter”);
}
public void method1(int i)
{
System.out.println(“method1 have one parameter”);
}
public void method1(int i, int j)
{
System.out.println(“method1 have two parameters”);
}
}
class Overloading1
{
public static void main(String args[])
{
Demo1 d = new Demo1();
d.method1();
d.method1(34);
d.method1(76,88);
}
}
Compile : javac Overloading1.java
Run : java Overloading1
Output :
method1 have no parameter
method1 have one parameter
method1 have two parameters
---------------------------------------------------------------------------------------------------
2. Type of parameters
- In a class one or more methods having same name and type of parameters are different.
- Below method1 in a class Demo1 having polymorphic nature.
- All method names same but type of arguments are different.
---------------------------------------------------------------------------------------------------
Program : Overloading based on type of parameters
Output :
method1 have int parameter
method1 have String parameter
method1 have float parameters
class Demo2
{
public void method1(int i)
{
System.out.println(“method1 have int parameter”);
}
public void method1(String s)
{
System.out.println(“method1 have String parameter”);
}
public void method1(float j)
{
System.out.println(“method1 have float parameter”);
}
}
class Overloading2
{
public static void main(String args[])
{
Demo2 d = new Demo2();
d.method1(12);
d.method1("Java");
d.method1(76.5f);
}
}
Compile : javac Overloading2.java
Run : java Overloading2
Output :
method1 have int parameter
method1 have String parameter
method1 have float parameters
---------------------------------------------------------------------------------------------------
3. order of parameters
- In a class one or more methods having same name and order of parameters are different.
- Below method1 in a class Demo1 having polymorphic nature.
- All method names same but order of arguments are different.
---------------------------------------------------------------------------------------------------
Program : Overloading based on order of parameters
Output :
method1 have int and String parameter
method1 have String and int parameter
class Demo3
{
public void method1(int id1, String name1)
{
System.out.println(“method1 have int and String parameter”);
}
public void method1(String name2, int id2)
{
System.out.println(“method1 have String and int parameter”);
}
}
class Overloading3
{
public static void main(String args[])
{
Demo3 d = new Demo3();
d.method1(12, "Java");
d.method1("Java", 23);
}
}
Compile : javac Overloading3.java
Run : java Overloading3
Output :
method1 have int and String parameter
method1 have String and int parameter
---------------------------------------------------------------------------------------------------
Thanks for your time.
Thanks for your time.
Nireekshan