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
Here is what gets called:
new Son()
=>
Son._init
=> first every constructor calls super()
Father._init
Object._init
who() => is overridden, so prints "son"
tell(name) => name is private, so cannot be overridden => "father"
who() => "son"
tell(name) => "son"
Lessons to learn: