The first of the four major characteristics of an object-oriented program is Abstraction.

Abstraction is the definition of an abstract data type, which includes the data type's representation and behavior.

An abstract data type is a new type (not intrinsic to C or C++).

It is not one of the primitive data types that are built into the programming language (such as int, long, and float).