(Method Overloading)

Given the following methods, write down the printed output of the method calls:

public static void doSomething(String x) { System.out.println("A");
}
public static void doSomething(int x) { System.out.println("B");
}
public static void doSomething(double x) { System.out.println("C");
}
public static void doSomething(String x, int y) { System.out.println("D");
}
public static void doSomething(int x, String y) { System.out.println("E");
}
public static void doSomething(double x, int y) { System.out.println("F");
} Method calls
1. doSomething(5);
2. doSomething (5.2, 9);
3. doSomething(3, "Hello");
4. doSomething("Able", 8);
5. doSomething ("Alfred");
6. doSomething (3.6);
7. doSomething("World");

Respuesta :

Answer:

1. doSomething(5);  

   B

2. doSomething (5.2, 9);  

    F

3. doSomething(3, "Hello");  

    E

4. doSomething("Able", 8);  

    D

5. doSomething ("Alfred");  

    A

6. doSomething (3.6);  

   C

7. doSomething("World");

   A

Explanation:

Method overloading is an ability available in some programming languages such as Java to enable two or more methods share the same name but with different argument list.

For example, a method with a single string argument doSomething(String x). The method can be overloaded by having a different argument list as follows:

  • doSomething(int x) - different variable type
  • doSomething(String x, int y)  -  different number of arguments
  • doSomething(int y, String x)  - different sequence of arguments

When calling the method with a specified argument list such as doSomething("Able", 8), only the matched version (e.g. doSomething(String x int y)) will be invoked and print out D.

ACCESS MORE