In Java it is possible to define two or more methods within the same class that share the same name, as long as their parameter declarations are different. When this is the case, the methods are said to be overloaded, and the process is referred to as method overloading.

Method overloading is one of the ways that Java supports polymorphism. If you have never used a language that allows the overloading of methods, then the concept may seem strange at first. But as you will see, method overloading is one of Java’s most exciting and useful features.

When an overloaded method is invoked, Java uses the type and / or number of arguments as its guide to determine which version of the overloaded method to actually call.

Thus, overloaded methods must differ in the type and / or number of their parameters. While overloaded methods may have different return types, the return type alone is overloaded method, it simply executes the version of a method.

When Java encounters a call to an overloaded method, it simply executes the version of the method whose parameters match the arguments used in the call.

Here is a simple example that illustrates method overloading :

// Demonstrate method overloading .

class OverloadDemo {

void test () {

System.out.println(“ No parameters ”) ;


// Overload test for one integer parameter .

void test(int a) {
System.out.println(“a : “ + a) ;


// Overlaod  test for two integer parameters .

void test( int a, int b)  {

System. out. println(“ a and b : “ + a + “ “ + b) ;


//  Overload  test for a double parameter

double test (double a)  {

Recommended Post   What is Inheritance in Java Programming?

System. out. println (“ double a : “ + a) ;

return a * a ;



class Overload {

public static void main ( Sting args[] )  {

OverloadDemo ob = new OverloadDemo () ;

double result ;

// call all versions of test ()

  1. test () ;
  2. test (10) ;

ob.test (10, 20)  ;

result = ob. test (123.25) ;

System. out. println( “ Result of ob.test(123.25) : “ + result ) ;



Output :

This program generates the following output :

No parameters

a : 10

a and b : 10 20

double a : 123.25

Result of ob. test (123.25 ) : 15190.5625

Description :

As you can see, test () is overloaded four times. The first version takes no parameters, the second takes one integer parameter, the third takes two integer parameters, and the fourth takes one double parameter. The fact that fourth version of test() also returns a value is of no consequence relative to overloading, since return types do not play a role in overload resolution.


Please enter your comment!
Please enter your name here