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




פולימורפיזם זו צורת הסתכלות על כל מחלקה בהסתכלות רוחבית, ז"א ראיית כל מחלקה כחלק ממכלול המחלקות אליהן היא קשורה.
ניתן להסתכל על כל עצם מטיפוס מחלקה יורשת, כעצם מאותו טיפוס או כעצם מטיפוס כל אחת מהמחלקות מהן הטיפוס שלו יורש.
לפולימורפיזם 2 שימושים עיקריים.
1. יצירת מערך מטיפוס אב, כך שניתן להכניס אליו עצמים מכל אחת מהמחלקות היורשות מאותו אב.
2. יצירת פעולה המקבלת עצם מטיפוס אב, ניתן להשתמש בה ולשלוח אליה עצם מטיפוס היורש מטיפוס אותה מחלקת אב.
בנוסף, ניתן ליצור עצם עם הפניה ממחלקת אב, וקריאה לפעולה בונה ממחלקת בן.
לדו':

נוצר לנו עצם ממחלקת פרה, כאשר ההפניה-צורת ההסתכלות על העצם היא בתור חיה.
כאשר ניצור מערך/פעולה המקבלת/מכילה עצם ומתייחסת אליו כעצם מטיפוס אב, ונרצה לגשת לתכונות/פעולות של העצם שנשלח, שיכול להיות גם מטיפוס בן-נצטרך לבצע המרה לטיפוס הבן המתאים.
המרה לטיפוס הבן נעשית באמצעות (ChildType)obj. לדוגמה: ((Cow)a1), כשההפניה ל a1 היא מטיפוס
.animalכשנרצה לבדוק האם עצם הוא מטיפוס מסויים נשתמש באופרטור is.
is-אופרטור המחזיר אמת/שקר האם עצם הוא מטיפוס מסויים.
מחלקה-טיפוס is עצם לדו':
