Inheritance allows a child class to inherit attributes and behaviors from a parent class. There are different forms of inheritance like specialization, where the child class is a specialized subtype of the parent, and specification inheritance where the parent class specifies behaviors implemented in the child class. Inheritance provides benefits like code reuse and reliability but also costs like increased complexity and slower execution speed.