As Sridhar said, printit method in A is private and private methods are not overridden so the call to printit is not polymorphic as printit in B doesn't override printit of A...
So just to remind myself:
1) Private methods are not overridden / polymorphic
2) Static methods are not overridden / polymorphic
Jim ... ...
BEE MBA PMP SCJP-6
Sahil Kapoor
Ranch Hand
Joined: Sep 12, 2009
Posts: 316
posted
0
1) Class B's printit() method is NOT overriding Class A's printit() method because of the fact that Class A's method is Private.
2) Polymorphism applies only to overriden methods and not overloaded or redefined methods.
3) Had it been the case that Class A defines printit() method to be public , then the output at second line would definitely be B, because at that time Class B overrides prinit() method and polymorphism applies to it.