Inheritance allows one class to acquire properties and behaviors of another class. This allows code reusability and runtime polymorphism through method overriding. There are three types of inheritance in Java: single, multilevel, and hierarchical. Multiple inheritance is not supported in Java through classes due to complexity and ambiguity issues that can arise.