בכיתה
יום ב'
שלושה מבדקי ש.ב.
יום ג'
1. בשיעורים קודמים - עיקרון המחלקה המופשטת
באמצעות מלת-המפתח abstract בשורת ההצהרה על המחלקה, אנו קובעים כי לא ניתן יהיה
ליצור עצמים ממחלקה זו. לדוגמה: {...} class abstract Shape.
בשבוע הבא נתרגל מחלקות מסוג זה ונלמד גם אודות פעולות מופשטות (אבסטרקטיות).
2. מבוא לפולימורפיזם
הדגמנו הנושא על היררכיית המחלקות הבאה:
Person
|
+--------+--------+
| |
Teacher Manager
בפעולה Main הנמצאת במחלקה Program כתבנו:
}
;()Person p1 = new Person
;()Teacher t1 = new Teachar
;()Manager m1 = new Manager
;Person arrPersons = new Person[3]
;arrPersons[0]=p1
;arrPersons[1]=t1
;arrPersons[2]=m1
בדקו בעצמכם אילו משורות הקוד הבאות
(בהמשך לשורות הקודמות) גוררות שגיאה,
ציינו את סוג השגיאה:
;(Console.WriteLine(t1.salary
;(Console.WriteLine(arrPersons[0].name
;(Console.WriteLine(arrPersons[1].salary
{
3. נקודות לסיכום השיעור
א. כל עצם שנוצר (נולד) כעצם מטיפוס מסוים, לעולם יישאר להיות עצם מטיפוס זה.
ב. עצם יכול לגשת לכל אלמנט במחלקתו בעל הרשאת גישה public (למעט לבנאי).
ג. עצם יכול לגשת לכל אלמנט הנמצא במחלקת האב שלו בתנאי שהרשאת הגישה היא public
(למעט לבנאי, אליו לא ניתן לגשת לעולם לאחר שהעצם כבר נוצר).
ד. בהורשה הכל עובר ונמצא גם במחלקות היורשות (תכונות, פעולות, מאפיינים... למעט בנאים).
ה. תכונה/פעולה הנמצאת במחלקת האב והיא בעלת הרשאת גישה private עוברת בהורשה למחלקת
הבן אך אין אליה גישה מקוד מחלקת הבן או מעצם מטיפוס מחלקת הבן.
ו. מערך או אוסף מטיפוס האב יכול להכיל עצמים מטיפוס האב או מטיפוס אחת מהמחלקות היורשות.
ז. עצם בן הנמצא במערך מטיפוס אב, לא יכול לגשת לתכונה בעלת הרשאת גישה public שהוגדרה
במחלקת הבן.
במלים אחרות: עצם מטיפוס Teacher הנמצא במערך מטיפוס Person לא יכול לגשת לתכונה בעלת
הרשאת גישה public הנמצאת במחלקת Teacher.
ח. מדוע עצם מטיפוס בן הנמצא בתא מסוים במערך מטיפוס אב לא יכול לגשת לאלמנטים שהוגדרו
במחלקת הבן? כיוון שהמשקפיים דרכן מתבצעת ההסתכלות של העצם הן של הייחוס
ולא של העצם. הייחוס הוא מטיפוס אב, ולייחוס אב אין יכולת לגשת לאלמנטים שהוגדרו במחלקת בן.
ט. במערך מטיפוס Person, מתוך תא המכיל עצם מטיפוס Person, ניתן לגשת לכל אלמנט
בעל גישת הרשאה public שהוגדר במחלקה Person.
י. במערך מטיפוס Person, מתוך תא המכיל עצם מטיפוס Teacher, ניתן לגשת לכל אלמנט
בעל הרשאת גישה public שהוגדר במחלקת Person.
יא. במערך מטיפוס Person, מתוך תא המכיל עצם מטיפוס Teacher, לא ניתן לגשת לאלמנטים
שהוגדרו במחלקת Teacher, כיוון שההסתכלות היא של ייחוס מטיפוס Person.
יב. מחלקת אב לא מודעת לכך שהיא מורישה למחלקת בן.
מחלקת Person לא מודעת לכך שהיא מורישה למחלקת Teacher.
יג. מחלקת בן מודעת לכך שהיא יורשת ממחלקת אב.
מחלקת Teacher מודעת לכך שהיא יורשת ממחלקת Person.
לבית (ליום ב', ה- 4.12.23)
1. קריאה: "אודות המושגים הורשה-הכלה-פולימורפיזם" (דף 'קישורים', סעיף 170).
2. לתרגול: "תכונה מטיפוס מורכב" (דף 'קישורים' סעיף 190).
5. חדש - האופרטור is ודריסה של פעולות במחלקות השייכות לאותה היררכיה.