למתרגל\מרצה

המנהלים: TA_nimrod, TA_Adi, TA_Igor

למתרגל\מרצה

הודעהעל ידי qolo » 11:42 05/02/2010

קאסטינג ניתן לבצע רק מדרגה של בן לאבא, אולם מאבא לבן הדבר לא אפשרי ?
qolo
 
הודעות: 90
הצטרף: 09:48 23/10/2009

Re: למתרגל\מרצה

הודעהעל ידי TA_Yoni » 11:52 05/02/2010

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

ואם רק אפשר להשתמש בכותרות רלוונטיות לנושא השאלה ולא "למתרגל\מרצה"
המתרגל יוני
TA_Yoni
 
הודעות: 236
הצטרף: 13:44 18/10/2009

Re: למתרגל\מרצה

הודעהעל ידי qolo » 12:27 05/02/2010

אם ככה,לא ברור למה למשל בתרגול 11 עמ 8 NOTES .

השורה -B bb = (B)b תקינה

הרי b הוא מטיפוס A ,כיצד אם כך אפשר לעשות לו קאסטינג ?
qolo
 
הודעות: 90
הצטרף: 09:48 23/10/2009

Re: למתרגל\מרצה

הודעהעל ידי TA_Yoni » 16:01 05/02/2010

הטיפוס של b בזמן ריצה הוא B ולכן השורה תקינה בהתאם להסבר הקודם שלי.
שוב, יש להבדיל בין ערך המשתנה בזמן קומפילציה לבין ערכו בזמן ריצה:
()A a = new B
בזמן קומפילציה a הוא מטיפוס A
בזמן ריצה a הוא מטיפוס B
המתרגל יוני
TA_Yoni
 
הודעות: 236
הצטרף: 13:44 18/10/2009

Re: למתרגל\מרצה

הודעהעל ידי qolo » 21:58 06/02/2010

תודה ענקית יוני :)
qolo
 
הודעות: 90
הצטרף: 09:48 23/10/2009


חזור אל - מבוא למדעי המחשב 2010

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ו 2 אורחים