שיעור 15: הרכבה מול ירושה
למכונית יש מנוע — אבל היא לא סוג של מנוע. בשביל קשרי "יש-לו" קיים כלי שני, פשוט להפתיע: שומרים אובייקט כתכונה של אובייקט אחר. זו הרכבה — והבחירה בינה לבין ירושה היא אחת ההחלטות החשובות בתכנון.
ירושה היא DNA — מה שאת/ה; הרכבה היא תיק גב — מה שיש לך. כלב הוא חיה (ירושה), אבל למכונית רק יש מנוע (הרכבה).
- הרכבה
- בניית מחלקה מאובייקטים של מחלקות אחרות — אובייקט נשמר כתכונה: self.engine = Engine().
- קשר יש-לו
- "למכונית יש מנוע" — קשר שפותרים בהרכבה, לא בירושה.