Wieso probierst Du das nicht einfach aus? Dann hast Du sofort die Antwort.
Aber wenn K2 die Klasse K1 erweitert, dann kannst Du p1 = p2 zuweisen, denn ein K2 ist auch ein K1.
Bei der zweiten Zuweisung steht dies nicht fest. In p1 kann etwas sein, dass ein K2 ist, aber muss nicht. Daher braucht man einen cast und an dieser Stelle kann dann auch eine Exception fliegen (Wenn Zeile 4 nicht da wäre, dann würdest Du ein K1 zu einem K2 casten wollen, was nicht geht.