שאלת מבחן במבוא למדעי המחשב - האוניברסיטה הפתוחה 2012 - תכנות מונחה עצמים
נתונות המחלקות A ו-B (כמתואר בשאלה 5).
ד.
ד.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד א22012סמסטר א
★★★★★
תכנות מונחה עצמיםמעקב אחר קוד
כאשר מעבירים אובייקט ל-
System.out.println, Java קוראת אוטומטית למתודת toString() — שימו לב לטיפוס הדינמי של האובייקט כדי להחליט איזו גרסה של toString() תיקרא.הקוד יוצר אובייקט מסוג A ומדפיס אותו:
מה קורה בפועל:
1.
2.
כלומר, Java קוראת אוטומטית למתודת
עקרון הפולימורפיזם: הקריאה ל-
- אם מחלקה A מגדירה
- אם A לא מגדירה
לדוגמה:
סיכום: הפלט הוא תוצאת
מה קורה בפועל:
1.
new A() — יוצר אובייקט מסוג A (הטיפוס הסטטי של המשתנה הוא גם A).2.
System.out.println(b1) — קריאה זו שקולה לכתיבה:כלומר, Java קוראת אוטומטית למתודת
toString() על האובייקט.עקרון הפולימורפיזם: הקריאה ל-
toString() נקבעת לפי הטיפוס הדינמי (הטיפוס האמיתי של האובייקט בזמן ריצה), שהוא A.- אם מחלקה A מגדירה
toString() — תיקרא הגרסה של A.- אם A לא מגדירה
toString() — תיקרא הגרסה שעוברת בירושה ממחלקת האב (או מ-Object אם אין אב מפורש), שמחזירה משהו בצורה:לדוגמה:
A@1b6d3586.סיכום: הפלט הוא תוצאת
toString() של אובייקט A — הגרסה הספציפית תלויה בהגדרת המחלקה A כפי שניתנה בשאלה 5.