מדוע כריכה דינמית חשובה ביישום פולימורפיזם?
מדוע כריכה דינמית חשובה ביישום פולימורפיזם?

וִידֵאוֹ: מדוע כריכה דינמית חשובה ביישום פולימורפיזם?

וִידֵאוֹ: מדוע כריכה דינמית חשובה ביישום פולימורפיזם?
וִידֵאוֹ: Simple Explanation of Polymorphism and Dynamic Binding 2024, נוֹבֶמבֶּר
Anonim

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

בהתחשב בכך, מהו פולימורפיזם מסביר את התפקיד שממלא הקישור הדינמי ביישום פולימורפיזם?

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

באופן דומה, מה התועלת בכריכה דינמית? סטָטִי כריכה משתמש במידע Type (מחלקה ב-Java) עבור כריכה בזמן כריכה דינמית משתמש באובייקט כדי לפתור כריכה . שיטות עומס יתר מחוברות באמצעות סטטי כריכה בעוד ששיטות מוצקות מקושרות באמצעות כריכה דינמית בזמן ריצה.

לאחר מכן, השאלה היא האם הוא פולימורפיזם מחייב דינמי?

רב צורתיות ב-Java יש שני סוגים: זמן קומפילציה רב צורתיות (סטָטִי כריכה ) וזמן ריצה רב צורתיות ( כריכה דינמית ). דוגמה חשובה ל רב צורתיות הוא האופן שבו כיתת אב מתייחסת לאובייקט כיתת ילד. למעשה, כל אובייקט שמספק יותר מיחסי IS-A אחד הוא רַב צוּרוֹת בטבע.

כיצד כריכה דינמית מועילה באופס?

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

מוּמלָץ: