Method overriding allows a subclass to provide a specific implementation of a method that is already provided by its superclass. The subclass method must have the same name, parameters and return type as the superclass method. This allows the subclass to modify the behavior as needed and is how polymorphism is implemented. The super keyword can be used to call the superclass method from the overriding method.