→ חזרה לעמוד הקודם
// סיכום וחומר לימוד

סיכום פולימורפיזם

מבני נתונים · 899271פולימרפיזם

פולימורפיזם-רב צורתיות

קטע קוד, טבלה או תרשים מתוך המקור
קטע קוד, טבלה או תרשים מתוך המקור
קטע קוד, טבלה או תרשים מתוך המקור
קטע קוד, טבלה או תרשים מתוך המקור

פולימורפיזם זו צורת הסתכלות על כל מחלקה בהסתכלות רוחבית, ז"א ראיית כל מחלקה כחלק ממכלול המחלקות אליהן היא קשורה.

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

לפולימורפיזם 2 שימושים עיקריים.

1. יצירת מערך מטיפוס אב, כך שניתן להכניס אליו עצמים מכל אחת מהמחלקות היורשות מאותו אב.

2. יצירת פעולה המקבלת עצם מטיפוס אב, ניתן להשתמש בה ולשלוח אליה עצם מטיפוס היורש מטיפוס אותה מחלקת אב.

בנוסף, ניתן ליצור עצם עם הפניה ממחלקת אב, וקריאה לפעולה בונה ממחלקת בן.

לדו':

קטע קוד, טבלה או תרשים מתוך המקור

נוצר לנו עצם ממחלקת פרה, כאשר ההפניה-צורת ההסתכלות על העצם היא בתור חיה.

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

המרה לטיפוס הבן נעשית באמצעות (ChildType)obj. לדוגמה: ((Cow)a1), כשההפניה ל a1 היא מטיפוס

.animal

כשנרצה לבדוק האם עצם הוא מטיפוס מסויים נשתמש באופרטור is.

is-אופרטור המחזיר אמת/שקר האם עצם הוא מטיפוס מסויים.

מחלקה-טיפוס is עצם לדו':

קטע קוד, טבלה או תרשים מתוך המקור

עכשיו מתרגלים

תרגול בנושא פולימרפיזם

  1. משחק לתרגולמסיכות OOP
הורדת הקובץ המקוריPDF · סיכום פולימורפיזם