A cast (for a reference) doesn't convert the object. It will only work if the object in question is actually an Account object, and all it does is change the type of the reference.
What the cast does is tell the compiler "See that Object reference you've got? Well, it's actually pointing at an Account object. So please treat it as one".
There are a few occasions where the compiler won’t believe youOtherwise the compiler is much more trusting than we are: it thinks you are telling it the truth, and that you know what you are doing.