Inheritance allows the creation of new classes that reuse, replace, or extend the functionality of existing classes. The existing class is called the base class or parent class, while the new class inheriting from it is called the derived class or child class. Derived classes inherit data members and member functions from base classes. Inheritance provides code reusability and allows modeling of real-world hierarchies in programs. There are different types of inheritance including single, multiple, multilevel, hierarchical, and hybrid inheritance.