Can someone explain the actual usage of dynamic casting ($cast) in classes?

i have refered some docs but im not very much clear on that.

I knw that child class is always cast to parent and then used in the methods, but Im confused that why we are doing so. I knw it might be a very basic question but I want to be clear on that. thanks in advance

In reply to Ramachandran168:

It should solve your doubt.
https://verificationacademy.com/forums/systemverilog/confusion-over-casting-classes