Public classSonextendsParent { PublicString name= "Jack"; Public voidinit () {Super. Init (); System.out.println ( This. Name); } Public Static voidMain (string[] args) {son son=NewSon (); Son.init (); //Init (son)System.out.println ("# #" +son.name); Parent P=NewSon (); System.out.println ("** " +p.name); }} Public classParent { PublicString name= "Tom"; Public voidinit () {System.out.println ( This. Name); }} ———————————————————————————————— Public classParent { Public voidinit () {System.out.println ("1 init Parent"); This. Demo (); } Public voidDemo () {System.out.println ("2 Demo Parent"); }} Public classSonextendsParent { Public voidinit () {Super. Init (); System.out.println ("3 init Son"); This. Demo (); } Public voidDemo () {System.out.println ("4 Demo Son"); } Public Static voidMain (string[] args) {//current Run class SonSon son =NewSon (); Son.init (); //Init (son) }}
What are the results of the above two scenarios? Why? (Member variables and member methods)
tom,jack,# #jack, **tom
1,4,3,4
This small case