פולימורפיזם (מדעי המחשב)

פולימורפיזם (רב־צורתיות) הוא רעיון בתכנות. זה מאפשר לקוד להתנהג אחרת לפי "טיפוס". טיפוס הוא סוג של נתון, כמו מספר או מילה.

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

העמסה פירושה שלאותו שם יש כמה משמעויות. לדוגמה + עובד על מספרים שלמים ועל מספרים עם נקודה.

המרה היא המחשב שמשנה טיפוס אחד לאחר באופן אוטומטי. בשפת C יש המרות כאלה, אך הן דורשות זהירות.

זה כאשר כותבים פונקציה כללית שמתאימה להרבה טיפוסים. ב-++C זה נעשה בעזרת תבניות. ב-ML המהדר יודע לבד איזה טיפוס אפשר להעביר.

שפות כמו C, ++C, ML, Haskell, Java ו-C# תומכות בצורות שונות של פולימורפיזם.

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

החלפת גלגל היא דוגמה: ההוראות הכלליות נכונות לכל רכב. בכל רכב הפעולות יתבצעו בצורה שונה אבל לפי אותם שלבים.

פולימורפיזם יכול לפעול בזמן הידור (כשמכינים את התוכנית) או בזמן ריצה (כשהתוכנית פועלת). מימוש נפוץ בזמן ריצה משתמש ב-virtual table. זו טבלה שמקשרת שם הפעולה לקוד המתאים לכל סוג. יש לזה מעט עלות בזיכרון ובביצועים, אבל בדרך כלל זה קטן.

פולימורפיזם עוזר לכתוב קוד קצר ונקי שיכול לעבוד על הרבה מקרים שונים.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!