Inheritance allows a class to inherit properties and methods from another class. A subclass inherits attributes and behavior from a base class without modifying the base class. There is single inheritance, where a subclass inherits from only one superclass, and multiple inheritance, where a subclass can inherit from more than one superclass. When an object is created, it allocates memory for all inherited instance variables from its parent classes.