Inheritance allows classes to extend existing classes without modifying them. A derived class inherits features from its base class and can define new features. There are different types of inheritance including single, multiple, hierarchical, and multilevel inheritance. When deriving a class, the member access specifier (public, private, protected) determines how members of the base class appear in the derived class. The example shows Shape as the base class and Rectangle and Triangle as derived classes that inherit properties like width and height while defining their own area calculation methods.