Does anybody doesn't ? You have a "public class ChildClass extends ParentClass". ChildClass may have some methods that ParentClass doesn't. How could you instantiate the parent and assign it to a child ? You probably want to do the opposite :
The object that is actually created has NO IDEA what methodB() is - it doesn't exist. But the reference says that you can call it.
It would be like saying you have a "class Animal" and a ''class fish extends animal". You can refer to any fish as an animal, but you can't refer to any animal as a fish.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors