That is correct so that you understand you may receive a "possible loss of precision" error or possibly some other error (e.g. some type of data overflow) with, using your example:
number = otherNumber;
since you are demoting this way and promoting in your example. However, with your final input being String, I don't know of any reason that you would ever need to demote.
The only reason I would, possibly, overload the method would be if you were to have a generic "utility" class of your own design that you import regularly for some of your more favorite functions. Then, the next time you're need to take something to hex, you may be wanting to come from another data type. Of course, this is up to your individual programming style and, truthfully, would probably apply more to some other type of function that may have a wider incoming selection of variables. For example, a data reading class accepting a File as an argument that brings in any data type and converts it to ASCII, etc.
For this, though, it sounds like you've got it worked out. :)
lol. I'm now up to 4 posts on these forums... all in this thread. ;)