Unlike overriding, overloading has no restrictions on exceptions thrown, on the use of private, or on return types. Anything goes!


  You can overload the main(...) method.  Doing so just gives you another method.


  What looks like overriding a private method compiles successfully, but then becomes overloading in all cases.