An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer.
... a simplified description or specification of a system that emphasizes some of the systems details or properties while suppressing others. A good abstraction is on that emphasizes details that are significant to the reader or user and suppresses details that are, at least for the moment, immaterial or diversionary
ChessPiece chessBoard[8][8]{}; ... chessBoard[0][0] = rook;
class ChessBoardT{ public: void SetPieceAt(size_t x, size_t y, ChessPieceT piece); ChessPieceT GetPieceAt(size_t a, size_t y) const; bool IsEmpty(size_t x, size_t y) const; private: }
Encapsulation is the process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation.