Honestly, I don't have any library-level case uses; the plan was to set up a system where a generic 'Command' could be generated by, say, an input/network manager, and sent to the target object. The manager would know how to send what Command where by way of keeping a list of possible commands and targets, adjustable at runtime:
KeyManager.addCommand(<???> commandType, int keyID, int keyEventType, Commandable target);
Any time someone triggers the appropriate KEY_DOWN/KEY_UP event for the corresponding key, it sends the Command designated by commandType to the provided Commandable object. The implementation of the target object's response to the command is completely modular.
With regards to Nate's suggestion of using instanceof, I recall reading a while back that instanceof should be avoided, though whether that was due to performance issues or because it's generally a bad habit, I can't remember. This was a looong time ago, however, so that may not be the case anymore?