Bird
Raised Fist0
Javaprogramming~5 mins

Method overloading in Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is method overloading in Java?
Method overloading is when a class has multiple methods with the same name but different parameters (different type, number, or order). It helps perform similar tasks in different ways.
Click to reveal answer
beginner
Can method overloading change only the return type of methods?
No. Method overloading requires different parameter lists. Changing only the return type is not enough for overloading.
Click to reveal answer
intermediate
How does Java decide which overloaded method to call?
Java looks at the method name and the arguments you pass. It matches the method with the closest parameter types to your arguments.
Click to reveal answer
beginner
Example: What will this code print?

public class Test {
  void show(int a) { System.out.println("int: " + a); }
  void show(String a) { System.out.println("String: " + a); }
  public static void main(String[] args) {
    Test t = new Test();
    t.show(5);
    t.show("Hi");
  }
}
Output: int: 5 String: Hi Explanation: The show method is called with an int and a String, so Java calls the matching overloaded method each time.
Click to reveal answer
beginner
Why is method overloading useful?
It lets you use the same method name for similar actions but with different inputs. This makes code easier to read and organize.
Click to reveal answer
Which of these is a valid method overloading example?
Avoid print(int a) and void print(String a)
Bint add(int a) and int add(int a)
Cvoid show() and int show()
Dvoid run() and void run()
Can two overloaded methods differ only by return type?
AYes, always
BYes, if parameters are the same
CNo, never
DOnly if methods are static
What happens if no matching overloaded method is found?
AJava calls a random method
BJava throws a compile-time error
CJava calls the first method declared
DJava calls the method with the closest return type
Which is NOT a way to overload a method?
AChange number of parameters
BChange parameter types
CChange parameter order
DChange method name
Why might a programmer use method overloading?
ATo reuse method names for similar tasks
BTo confuse other programmers
CTo reduce the number of classes
DTo avoid writing methods
Explain method overloading and how Java chooses which method to call.
Think about how you might have many ways to do similar things but with different inputs.
You got /4 concepts.
    Give an example of method overloading with at least two methods and explain the output when called.
    Use simple types like int and String for easy understanding.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What is method overloading in Java?

      easy
      A. Changing the return type of a method only
      B. Having multiple classes with the same name
      C. Using inheritance to override methods
      D. Having multiple methods with the same name but different parameters

      Solution

      1. Step 1: Understand method naming

        Method overloading means methods share the same name.
      2. Step 2: Check parameter differences

        They differ by number or type of parameters, not just return type.
      3. Final Answer:

        Having multiple methods with the same name but different parameters -> Option D
      4. Quick Check:

        Same name + different parameters = method overloading [OK]
      Hint: Same method name, different parameters means overloading [OK]
      Common Mistakes:
      • Confusing overloading with overriding
      • Thinking return type alone overloads method
      • Mixing class names with method names
      2.

      Which of the following is a correct method overloading example in Java?

      class Test {
        void show(int a) {}
        void show(int a, int b) {}
        void show(int a) {}
      }
      easy
      A. This code compiles without errors
      B. Duplicate method show(int a) causes a compile error
      C. Method names must be different to overload
      D. Return types must differ for overloading

      Solution

      1. Step 1: Check method signatures

        Two methods have the same name and same parameter list: show(int a).
      2. Step 2: Understand overloading rules

        Overloading requires different parameter lists; duplicate signatures cause errors.
      3. Final Answer:

        Duplicate method show(int a) causes a compile error -> Option B
      4. Quick Check:

        Same parameters = error, not overloading [OK]
      Hint: Parameters must differ; identical signatures cause errors [OK]
      Common Mistakes:
      • Assuming return type difference overloads method
      • Ignoring duplicate parameter lists
      • Thinking method names must differ
      3.

      What is the output of this Java code?

      class Demo {
        void print(int a) {
          System.out.println("int: " + a);
        }
        void print(String s) {
          System.out.println("String: " + s);
        }
      }
      public class Main {
        public static void main(String[] args) {
          Demo d = new Demo();
          d.print(5);
          d.print("hello");
        }
      }
      medium
      A. int: 5\nString: hello
      B. String: 5\nint: hello
      C. int: 5\nint: hello
      D. Compilation error

      Solution

      1. Step 1: Identify method calls and parameters

        First call passes int 5, second call passes String "hello".
      2. Step 2: Match calls to overloaded methods

        print(int) prints "int: 5", print(String) prints "String: hello".
      3. Final Answer:

        int: 5 String: hello -> Option A
      4. Quick Check:

        Correct method chosen by parameter type [OK]
      Hint: Method chosen by argument type matches parameter [OK]
      Common Mistakes:
      • Mixing output order
      • Assuming wrong method called
      • Expecting compile error
      4.

      Find the error in this code snippet:

      class Calculator {
        int add(int a, int b) { return a + b; }
        double add(double a, double b) { return a + b; }
        int add(int a, int b, int c) { return a + b + c; }
        int add(int a, int b) { return a - b; }
      }
      medium
      A. Duplicate method add(int a, int b) with different body causes error
      B. Overloading requires different method names
      C. Return type difference causes error
      D. No error, code compiles fine

      Solution

      1. Step 1: Check method signatures

        Two methods have signature add(int a, int b) but different bodies.
      2. Step 2: Understand overloading rules

        Overloading requires unique parameter lists; duplicate signatures cause errors regardless of body.
      3. Final Answer:

        Duplicate method add(int a, int b) with different body causes error -> Option A
      4. Quick Check:

        Same parameters = duplicate method error [OK]
      Hint: Same parameters, different body = error, not overloading [OK]
      Common Mistakes:
      • Thinking different return types fix duplicates
      • Ignoring duplicate parameter lists
      • Confusing overloading with overriding
      5.

      Consider this class:

      class Converter {
        int convert(String s) { return Integer.parseInt(s); }
        int convert(int i) { return i * 2; }
        int convert(String s, int base) { return Integer.parseInt(s, base); }
      }
      public class Main {
        public static void main(String[] args) {
          Converter c = new Converter();
          System.out.println(c.convert("10"));
          System.out.println(c.convert(10));
          System.out.println(c.convert("10", 16));
        }
      }

      What is the output when this code runs?

      hard
      A. Runtime error parsing string
      B. 10\n20\n10
      C. 10\n20\n16
      D. Compilation error due to ambiguous methods

      Solution

      1. Step 1: Analyze each method call

        convert("10") parses string "10" as decimal 10; convert(10) doubles 10 to 20; convert("10", 16) parses hex "10" as decimal 16.
      2. Step 2: Determine output values

        Outputs are 10, 20, and 16 respectively.
      3. Final Answer:

        10 20 16 -> Option C
      4. Quick Check:

        Overloaded methods handle inputs correctly [OK]
      Hint: Match method by parameters; parseInt with base converts hex [OK]
      Common Mistakes:
      • Confusing hex parsing result
      • Expecting compile or runtime errors
      • Mixing method outputs
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard