Inheritance allows the creation of new classes from existing classes. There are different types of inheritance including single, multiple, multilevel, hierarchical and hybrid. Multilevel inheritance allows a derived class to inherit from another derived class. Constructors and destructors are called from base to derived classes. Multiple inheritance requires derived classes to pass arguments to multiple base class constructors.