posted 17 years ago
Hello Ahmed,
Have a careful look at static blocks,
static blocks run once when the class that they are defined is first loaded.
So the JVM loads the classes first and hence the "r1" is printed, then the System.out is called which prints "pre", the constructor is called who in turn calls the super class constructor, so the "r2" is printed and then the constructor prints "hawk".
Cheers,