The ability to create
new, high-level data types and organize them into a meaningful class structure
is called
data abstraction. Data abstraction is at
the core of object-oriented programming. Once you model objects with real-world
properties from the basic data types, you can continue creating, assembling,
and combining them into increasingly complex objects. Then you can use these
objects as if they were part of the original programming language.