Object-Oriented Programming · Question 7 · Hard
What is the output of the following Java code?
class A {
static void show() { System.out.println("A"); }
}
class B extends A {
static void show() { System.out.println("B"); }
}
// in main:
A obj = new B();
obj.show();
- A
- B
- Compilation error
- Runtime error
Answer and explanation
Answer: A. A
Explanation: Static methods are not overridden; they are hidden. A static call is resolved at compile time from the reference type (A), so A.show() runs and prints "A".
Previous: What is the output of the following Java code? · Next: Which statement about abstract classes and interfaces in Java is correct?
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
- Which statement about constructors in Java is correct?
- A Car object contains an Engine object. This "has-a" relationship is best…
- What is the output of the following Java code?
- Which statement about abstract classes and interfaces in Java is correct?
- In C++, how is the "diamond problem" (two copies of a common base class…
- Which pair of method declarations CANNOT both appear in the same Java class?
- What is printed when new C() is executed?
- What is the output of the following Java code?
- What is the output of the following Java code?
- What is the output of the following Java code?
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