Best Way to access child class' functionality with cast?

Right now I’m just casting to the other subclasses if the cast fails on the parent class and that’s how I access their specific variables values. Is there a way to make a subclass get casted as its parent class?

Are you talking about Upcasting? If so just Cast to the parent class.

But just in case you missunderstood what a Cast does: The Object you Input simply checks if it is the Type or a Child of that Type you Cast to. If it fails its neither one of those, if it succeds its one of those and you can access those Functions/Variables within this Type since you just verified thats it is indeed that Type and those Functions/Variables exist on the Object you used as Input.

You usually want to do Downcasting Animal → Cast to Dog or Cat → so you can access Dog->Barf() or Cat->Meow() that you could not access on the Animal (assuming it has no Barf or Meow functionality)