Because, 1. Parent class is loaded before the child class. 2. When a class is loaded static-blocks are executed first + static variables are initialized to defaults + instance variables are set to their default values. 3. Constructor of parent class is first executed before the execution of the child class constructor.