למתרגל\מרצה

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

שלח תגובה
qolo
הודעות: 90
הצטרף: 09:48 23/10/2009

למתרגל\מרצה

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

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

TA_Yoni
הודעות: 236
הצטרף: 13:44 18/10/2009

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

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

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

ואם רק אפשר להשתמש בכותרות רלוונטיות לנושא השאלה ולא "למתרגל\מרצה"
המתרגל יוני

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

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

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

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

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

הרי b הוא מטיפוס A ,כיצד אם כך אפשר לעשות לו קאסטינג ?

TA_Yoni
הודעות: 236
הצטרף: 13:44 18/10/2009

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

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

הטיפוס של b בזמן ריצה הוא B ולכן השורה תקינה בהתאם להסבר הקודם שלי.
שוב, יש להבדיל בין ערך המשתנה בזמן קומפילציה לבין ערכו בזמן ריצה:
()A a = new B
בזמן קומפילציה a הוא מטיפוס A
בזמן ריצה a הוא מטיפוס B
המתרגל יוני

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

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

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

תודה ענקית יוני :)

שלח תגובה

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