Method
Overloading:-Method overloading or function
overloading is another great feature of java which is very helpful for the
application development, in this feature a single function performed multiple
task. In method overloading function name must be same and parameter must be
different. For function overloading there is no rule for return type so return
type may be different.
If a function perform more than one task, called
overloaded function in function overloading function signature must be
different. Function overloading is done on the basis of reference and function
resolution or function binding is done at the compile time.
Function overloading also known as compile time
polymorphism or static binding or early binding.
Example1:-
class Student
{
void disp()
{
System.out.println("This is zero argument
disp");
}
void disp(int a)
{
System.out.println("This is int argument
disp");
}
void disp(char a)
{
System.out.println("This is char argument
disp");
}
}
class Test
{
public static void main(String[]args)
{
Student s=new Student();
s.disp();
s.disp(100);
s.disp('A');
}
}
Output:-
C:\JAVATECH>javac Test.java
C:\JAVATECH>java Test
This
is zero argument disp
This
is int argument disp
This
is char argument disp
Example2:-
class Student
{
void disp(int
a,long b)
{
System.out.println("This is Two argument
disp");
}
void disp(long
a,int b)
{
System.out.println("This is Two argument
disp");
}
}
class Test
{
public static void main(String[]args)
{
Student s=new Student();
s.disp(100,200);
s.disp(100,200);
}
}
Output:-
C:\JAVATECH>javac Test.java
Test.java:21:
error: reference to disp is ambiguous
s.disp(100,200);
^
both method disp(int,long) in Student and
method disp(long,int) in Student mat
ch
Test.java:22:
error: reference to disp is ambiguous
s.disp(100,200);
^
both method disp(int,long) in Student and
method disp(long,int) in Student mat
ch
2
errors
Example3:-
class Student
{
void disp(int a,long b)
{
System.out.println("This is Two[int,long]
argument disp");
}
void disp(long a,int b)
{
System.out.println("This is Two[long,int]
argument disp");
}
}
class Test
{
public static void main(String[]args)
{
Student s=new Student();
s.disp(100l,200);
s.disp(100,200l);
}
}
Output:-
C:\JAVATECH>javac Test.java
C:\JAVATECH>java Test
This
is Two[long,int] argument disp
This
is Two[int,long] argument disp
Example4:-
class Student
{
void disp(int a,long b)
{
System.out.println("This is Two[int,long]
argument disp");
}
void disp(long a,int b)
{
System.out.println("This is Two[long,int]
argument disp");
}
}
class Test
{
public static void main(String[]args)
{
Student s=new Student();
s.disp(100L,200);
s.disp(100,200L);
}
}
Output:-
C:\JAVATECH>javac Test.java
C:\JAVATECH>java Test
This
is Two[long,int] argument disp
This
is Two[int,long] argument disp
Example5:-
class Student
{
void disp(int a,long b)
{
System.out.println("This is Two[int,long]
argument disp");
}
void disp(long a,int b)
{
System.out.println("This is Two[long,int]
argument disp");
}
}
class Test
{
public static void main(String[]args)
{
Student s=new Student();
s.disp(100,200);
s.disp(100,200L);
}
}
Output:-
C:\JAVATECH>javac Test.java
Test.java:18:
error: reference to disp is ambiguous
s.disp(100,200);
^
both method disp(int,long) in Student and
method disp(long,int) in Student mat
ch
1
error
Comments
Post a Comment