Vidyalelo
Java Programming · Q51

Declaration and Access Control

Programming · Java Programming · question 51

Q51

Determine output: class A System.out.print("b1 "); public A() System.out.print("b2 "); class B extends A static System.out.print("r1 "); public B() System.out.print("r2 "); System.out.print("r3 "); static System.out.print("r4 "); public class Test extends B public static void main(String[] args) System.out.print("pre "); new Test(); System.out.println("post ");

A.
r1 r4 pre b1 b2 post
B.
pre r1 r4 b1 b2 r2 r3 post
C.
r1 r4 pre b1 b2 r3 r2 post
Answer
D.
r1 r4 pre b1 b2 post r3 r2
E.
Compilation fail

Answer: Option C

Solution

Answer: Option C
Solution:
All static blocks execute first then blocks and constructor.

Blocks and constructor executes (super class block then super class constructor, sub class block then sub class constructor).

Sequence for static blocks is super class first then sub class.

Sequence for blocks is super class first then sub class.