03-04-2007, 15:20
|
|
אדמין לשעבר
|
|
חבר מתאריך: 25.10.01
הודעות: 20,292
|
|
זה יעבוד.
אתה תוכל לגשת רק לשדות שמוכרים גם בA.
עם זאת, במידה ותשאל obj1 is B, תקבל true ותוכל לבצע Casting לB ולקרוא גם לשדות שהוא מממש.
תרגילים בשבילך:
1.
כל אובייקט יורש למעשה את object שמגדיר כמה מטודות בסיסיות שיש לכל אובייקט במערכת.
אתה יכול לייצר עכשיו object blah = DateTime.Now לדוגמא, אך תוכל לגשת רק לפונקציות כמו
,ToString(), GetHashCode(), GetType(), Equals().
עם זאת, ידוע שDateTime מממש בעצמו את ToString(). לכן, אשאל אותך את השאלה - מה תקבל
אם תפנה לblah.ToString()? (בלי לבצע Casting לDateTime).
2. שים את blah בWatch, וחקור אותו. בדוק כיצד לגשת לשדות שDateTime מממש.
3. קרא קצת על פולימורפיזם (כאן יש טקסט שלא יעזור לך לשאלה הזאת, אבל.. כן ייתן לך רקע):
http://en.wikipedia.org/wiki/Polymo...ted_programming
_____________________________________
דורון
|