Inheritance allows a subclass to inherit properties and methods from a superclass. There are several types of inheritance in Java including single, multilevel, hierarchical, and hybrid inheritance. Single inheritance involves a subclass extending one superclass. Multilevel inheritance allows a subclass to inherit from another subclass. Hierarchical inheritance has one superclass with multiple subclasses. Hybrid inheritance combines single and multiple inheritance by implementing interfaces.