Inheritance allows classes to inherit and reuse attributes and behaviors of other classes. It reduces duplicate code and improves efficiency. There are two main types of classes - base/parent classes that are inherited from, and derived/child classes that inherit from base classes. Inheritance is implemented using the "Inherits" keyword in VB.NET and allows passing functionality from base to derived classes. Constructors and destructors are also inherited by default. Abstract classes cannot be instantiated while final classes cannot be inherited from.