Here is the code, I defined two class named Father and Son, and create them in the main function:
public class Test {
public static void main(String[] ar
The code above is particular Bad Style (TM). ;-)
What happens is: There is no Father instance, just a Son instance. (It is assignment compatible to Father, however.)
The Son constructor calls the Father constructor. The latter calls the overridden (!) methods, thus Father.who and Father.tell are never called! The overridden Methods are called before (!) the Son constructor was finished.
My recommendations: