בואו קודם כל נכיר את המושג הזה: "הפשטה", או באנגלית Abstraction , מה הוא ? ולמה הוא נועד ?
הפשטה (אבסטרקציה) היא טכניקה בעיצוב תוכנה שנועדה לארגן מורכבות של לוגיקה דרך הקוד. כשמשתמשים באבסטרקציה , משתמשים בכדיי להסתיר את המורכבות הזאת , להסתיר מימושים שונים של פעולות. אנחנו נרצה לעבוד וליצור שכבות אבסטרקטיות בכדיי להציג רק את הפרטים הרלוונטיים עבור אותו מתכנת על ידי הקטנת כמות הפרטים ו"הוצאה החוצה" של הטיפול בהם.