The difference between them is that an Object Reference type is placed somewhere in the level (it has already been created at the time the cast is called), while the class version does not yet exist.
Zak gives a really good explanation of this in the following video:
Hope that helps!
EDIT: Tensa beat me too it ![]()