the fact is u r not overridding the method1() since u declared it as private in the super class.when u r not overriding a method , it willbe invoked by the reference not by the objects.
method1() in subclass is totally new to that class.
so, when u r callig that method it will call the super class method.
Parent p = new Child();
p.method2();
take my lock
test :
www.geocities.com/krishna4java/index.html