# מערך שיעור: הכמסה, הפשטה ופולימורפיזם — סיכום📋 מערך מרצה

משך: 1.5 שעות אקדמיות (68 דקות).

מטרת השיעור: הסטודנטים יחברו את הכלים שכבר תרגלו (Properties, abstract, virtual/override) לשלושה עקרונות בעלי שם, ויוכלו להסביר אותם בראיון עבודה בביטחון.

בסוף השיעור הסטודנטים צריכים: להצביע על דוגמה קונקרטית מקוד שכבר נכתב לכל אחד משלושת העקרונות, ולהסביר את ההבדל בין הכמסה להפשטה במילים שלהם.

דגש קריטי: זה שיעור-סיכום, לא שיעור-כלים-חדשים — אל תלמדו שום syntax חדש כאן, רק תנו שם ומסגור לדברים שכבר נכתבו.

---

## מהלך השיעור

| חלק בשיעור | משך | הערות ודגשים |
| --- | --- | --- |
| פתיחה וחיבור | 5 דקות | שאלו: "מי שמע את המונחים Encapsulation/Abstraction/Polymorphism בראיון עבודה?" |
| חזרה: הכמסה | 15 דקות | הצביעו על BankAccount/Properties מהיחידה — "זה מה שזה תמיד היה" |
| חזרה: הפשטה | 15 דקות | הצביעו על Shape/PaymentMethod — abstract/Interface כחוזה |
| חזרה: פולימורפיזם | 15 דקות | הצביעו על foreach על List<Shape>/List<PaymentMethod> |
| שילוב שלושתם | 10 דקות | דוגמת PaymentMethod שמדגימה את כולם יחד |
| תרגול מודרך | 8 דקות | תרגיל 1 — זיהוי בקוד קיים |

---

## דגשים להעברת השיעור

- אל תציגו שקופית עם שלוש הגדרות "יבשות" בלי לקשור כל אחת מיד לקוד קונקרטי שהסטודנטים כבר כתבו בעצמם — זו בדיוק הדוגמה מ-CLAUDE.md ל"נראה כמו תיעוד ספרייה" שרוצים להימנע ממנה.
- שימו דגש על תרגיל 1 (זיהוי עקרונות בקוד קיים) — זו הדרך הכי טובה לוודא שההבנה אמיתית ולא רק שינון הגדרות.
- הכינו את הכיתה לכך שהיחידה הבאה (SOLID) בונה ישירות על הבסיס הזה — לא נושא נפרד, אלא "מה עושים כשיש הרבה מחלקות ביחד".

---

## מושגים

**Encapsulation** — הסתרת מימוש + חשיפה מבוקרת.
**Abstraction** — "מה" בלי "איך" — חוזה כללי.
**Polymorphism** — קריאה זהה, התנהגות שונה בזמן ריצה.

---

## תרגיל חשיבה

**שאלת פתיחה:** "בראיון עבודה שואלים אתכם: 'תסביר לי מה זה הכמסה ותן דוגמה'. מה תענו — ואיזו תשובה יותר משכנעת: הגדרה כללית, או קוד קונקרטי?"

**מהלך:** תנו לזוגות לנסח תשובה של 30 שניות עם דוגמה קונקרטית מהקוד שכבר כתבו ביחידה (לא הגדרה מהספר). אספו כמה תשובות. הדגישו: מראיין תמיד יעריך יותר "ב-`BankAccount` שלי, `_balance` הוא `private` וגישה רק דרך `Deposit`/`Balance`" מאשר ציטוט הגדרה כללית.

**מה המרצה מראה בסוף:** עברו יחד על קוד `PaymentMethod`/`CreditCard`/`PayPal` מהשיעור, וסמנו בקול רם (או על הלוח) בדיוק היכן כל עיקרון בא לידי ביטוי — משפט אחד לכל עיקרון, ישירות מהקוד.
