Bird
0
0

Consider this code:

hard📝 Application Q9 of 15
Java - Abstraction
Consider this code:
abstract class A {
    abstract void m();
    void n() { System.out.println("Hello"); }
}
class B extends A {
    void m() { System.out.println("World"); }
}
class C extends B {
    void m() { System.out.println("Java"); }
    void n() { System.out.println("Programming"); }
}
public class Test {
    public static void main(String[] args) {
        A obj = new C();
        obj.m();
        obj.n();
    }
}
What is the output?
ACompilation error
BWorld Hello
CJava Programming
DJava Hello
Step-by-Step Solution
Solution:
  1. Step 1: Determine method m() called

    Reference is type A, object is C. m() in C overrides B and A, so prints 'Java'.
  2. Step 2: Determine method n() called

    n() is overridden in C, so prints 'Programming'.
  3. Final Answer:

    Java Programming -> Option C
  4. Quick Check:

    Method overriding with polymorphism = D [OK]
Quick Trick: Overridden methods called from actual object type [OK]
Common Mistakes:
  • Expecting superclass method output
  • Confusing reference type with object type
  • Assuming no override means superclass method

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Java Quizzes