I got the answer..! It is because there is runtime polymorphism happening here when you call ((B)this).prn(); and it becomes a recursive fn calling itself again and again,...finally resulting in the exception...
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.