When can a certain object be cast into another object? Does the casted object have to be a subtype of the other object? I\'m trying to figure out the rules...
You can cast if the runtime type of an object is a subtype of what you're trying to cast it into.
EDIT:
Yes, the object that you're trying to cast will need to implement the interface in order for you to cast it successfully.