Java rules for method overriding dictate that a subclass method cannot reduce the visibility of the inherited method (e.g., overriding a public method as private). Static and private methods can be overloaded, and overloaded methods have no restriction on checked exceptions.