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.
SCJP 6.0 96%
(Connecting the Dots ....)
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com