Bird
0
0

Given this class, what will obj.process(10, 20, 30) print?

hard📝 Application Q8 of 15
Java - Methods and Code Reusability

Given this class, what will obj.process(10, 20, 30) print?

class Processor {
  void process(int a, int b) { System.out.println("Two ints: " + (a+b)); }
  void process(int a, int b, int c) { System.out.println("Three ints: " + (a+b+c)); }
  void process(int... nums) { System.out.println("Varargs sum: " + java.util.Arrays.stream(nums).sum()); }
}
Processor obj = new Processor();
ATwo ints: 30
BVarargs sum: 60
CThree ints: 60
DCompilation error due to ambiguity
Step-by-Step Solution
Solution:
  1. Step 1: Identify matching method for three int arguments

    Method with exact three int parameters is called first.
  2. Step 2: Understand varargs fallback

    Varargs method is used only if no exact match found.
  3. Final Answer:

    Three ints: 60 -> Option C
  4. Quick Check:

    Exact match preferred over varargs [OK]
Quick Trick: Exact parameter match beats varargs in overloading [OK]
Common Mistakes:
  • Thinking varargs always called
  • Assuming ambiguity error
  • Ignoring exact parameter match priority

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Java Quizzes