Inheritance allows a class to acquire properties and behaviors of another class. It promotes code reusability, extensibility, and compartmentalization. Inheritance follows an "is-a" relationship, where one class is a type of another class, like how a car is a vehicle. There are different types of inheritance including simple, multi-level, multiple, and hierarchical inheritance.