This document introduces method overloading and method overriding in Java. Method overloading allows a class to have multiple methods with the same name but different parameters. It increases readability. Method overriding allows a subclass to provide a specific implementation of a method declared in the parent class. It is used for runtime polymorphism where the method being called is determined by the object type. The document provides examples of method overloading by changing number/type of arguments and of method overriding where the subclass overrides the parent's display method.