Object-Oriented Programming · Question 12 · Hard

What is the output of the following Java code?

static void m(Object o) { System.out.println("Object"); }
static void m(String s) { System.out.println("String"); }
// in main:
m(null);
  1. Object
  2. String
  3. Compilation error: ambiguous call
  4. NullPointerException at runtime
Answer and explanation

Answer: B. String

Explanation: null can be passed to both overloads, so Java chooses the most specific one. String is a subclass of Object, so m(String) is chosen and "String" is printed.

Previous: What is printed when new C() is executed? · Next: What is the output of the following Java code?

Practise object-oriented programming

Try a fresh set of object-oriented programming questions with an explanation after every answer, free and without signing up: Object-Oriented Programming practice. Or sit a full placement mock test.

More object-oriented programming questions

More technical & programming practice

DBMS · SQL · Operating Systems · Computer Networks · Software Engineering · Cloud & DevOps · GenAI Basics · Pseudo-code

LogicWiz Exams home · All practice topics · Placement mock tests · Daily 10 challenge