Boy this was a good one.
This is what I understand:
1. New Processor calls the the constructor Processor in
line: Processor p = new Processor()
2. Processor() {
// System.out.println("Processor this.b " + this.b);
System.out.println("Processor constructor Value of b = " + b); }
The Processor() constructor is called, and then the super
class is called automatically, Process().
3. In Process() the method methodA is called. MethodA in
in Processor is called. I am sure this is done, but I am
not sure why. I believe it is because, MethodA in
Processor is the active definition of MethodA since it
extends Process.
Also, factually this.b has a value of 0. I am guessing, but
the object has not been fully instantiated at this point so
this.b has a value of 0. (Note after the constructor
Processor() is executed this.b will have 126.)
4. When methodA completes, Processor() is completed.
I hope this helps out. If you find out anything else please
let me know.