The solution was : we change the access modifier protected of the parent class method initialize() to private . This is confusing , because the method wasn't even executed when it's protected . I checked that using : System.out.println("This line is an output from the parent class method initialize() :"); and the Output was : 0 9 Process finished with exit code 0 A protected method is supposed to be seen and used from outside the class in the same package and in all child classes . There probably some detail I am misunderstanding here!