Multiple choice

class checkoverride { public static void main(String []args) { sample8 obj = new childsample8(); obj.sample8a(obj); } } class sample8 { public static void sample8a(sample8 ob) { System.out.println("In sample8.sample8a()"); ob.sample8b(); } public void sample8b() { System.out.println("In Base.bar()"); } } class childsample8 extends sample8 { public static void sample8a(sample8 ob) { System.out.println("In childsample8.sample8a()"); ob.sample8b(); } public void sample8b() { System.out.println("In childsample8.sample8b()"); } }

What is the output of this program when executed?

  1. In sample8.sample8a()In sample8.sample8b()

  2. In sample8.sample8a()In childsample8.sample8b()

  3. In childsample8.sample8a()In sample8.sample8b()

  4. In childsample8.sample8a()In childsample8.sample8b()

  5. None of the above

Reveal answer Fill a bubble to check yourself
B Correct answer
Explanation

Reference variable is of type sample8(super class) and object created is of childsample8() and as it is static, so it first call sample8a() method of super class statically and then it calls sample8b() method of derived class dynamically.