you're checking whether p1 is an instance of Child, but inside the condition, you're trying to cast p to a Child. Assigning a superclass object to a subclass reference is illegal. Although the compiler allows it, the JVM will report a ClassCastException.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop