That is, programming language technology has attempted to find ways to say more with less verbiage while retaining control of the actual computing environment. The purpose of a class is to hide unnecessary detail and complexity from its clients.
Inheritance permits a class to be defined in terms of other classes.
Components defined in the base class may be added, changed, or removed by the derived class. Accompanying these two main ideas are subsidiary concepts that are sometimes more difficult to understand than the main ideas. Constructors, destructors, and overloaded functions and operators are consequences of encapsulation. Polymorphism, virtual functions, and virtual base classes are consequences of inheritance. Ultimately, OOP does not provide or create anything that could not have been done before, so it is difficult to argue that OOP is revolutionary.