Inheritance allows classes to inherit properties and methods from existing classes. This allows code reuse and avoids rewriting common functionality. The existing class is called the superclass, while the class inheriting is the subclass. The subclass inherits all non-private fields and methods from the superclass. Inheritance is implemented in Java using the "extends" keyword. The subclass can override methods from the superclass to modify their behavior. All classes in Java implicitly extend the Object class, which defines common methods like equals(), hashCode(), and toString().