Method overriding allows a subclass to provide a specific implementation of a method already defined in its superclass.
In Java, method overriding occurs when a subclass defines a method with the same name, return type, and parameters as a method in its superclass. This allows the subclass to offer a specific implementation that will be called when the method is invoked on an instance of the subclass. For example, if you have a superclass `Product` with a method `getPrice()`, and a subclass `DiscountedProduct` that overrides `getPrice()`, calling `getPrice()` on a `DiscountedProduct` instance will use the overridden version.