שאלת מבחן בתכנות מונחה עצמים - אוניברסיטת בר-אילן 2021 - ירושה
(BeeperX) שלאלה זו מתיחסת למחלקות הממשקויות בנוסחה [Beeper]. נתון כי X היא מחלקה הערויכת את המחלקה הזאת. מה מחסנים אצטו?
יניגו לבחינת X:
1. המחלקה X אינה מחלקה הנרדרת בתוך מודול
2. מודול X-ב מימוש עבור add המתרגלה שהוגדרה במחלקה Beeper
3. מודול ב-X מתרגלה X היא מתרגלה בעלת ערך מספרי אחרון בין 0 לבין 100-ל
4. נתון להתיחסות עבם ב-X סטטיות טטטוציות X סטטיות טטטוציות ב-X טטטוציות X סטטיות טטטוציות
5. מודול ב-X מתרגלה מופשטת (public abstract) מופשטות פבקו מופשטות כאוקרונומיות בתוך הנחפה של Beeper
יניגו לבחינת X:
1. המחלקה X אינה מחלקה הנרדרת בתוך מודול
2. מודול X-ב מימוש עבור add המתרגלה שהוגדרה במחלקה Beeper
3. מודול ב-X מתרגלה X היא מתרגלה בעלת ערך מספרי אחרון בין 0 לבין 100-ל
4. נתון להתיחסות עבם ב-X סטטיות טטטוציות X סטטיות טטטוציות ב-X טטטוציות X סטטיות טטטוציות
5. מודול ב-X מתרגלה מופשטת (public abstract) מופשטות פבקו מופשטות כאוקרונומיות בתוך הנחפה של Beeper
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד א2021סמסטר ב
★★★★★
ירושהמחלקות מופשטותOverridingפולימורפיזם
כאשר מחלקה קונקרטית יורשת ממחלקה מופשטת, מה היא חייבת לספק על מנת שניתן יהיה ליצור ממנה אובייקטים?
השאלה, על אף ניסוחה הלקוי, עוסקת בעקרונות הירושה ממחלקות מופשטות. כאשר מחלקה קונקרטית (כזו שניתן ליצור ממנה אובייקטים) בשם
אפשרות 2 בשאלה, בפירוש הסביר שלה, טוענת כי "במחלקה
העיקרון המרכזי כאן הוא ה"חוזה" שירושה ממחלקה מופשטת יוצרת. המחלקה המופשטת מגדירה חתימות של מתודות (כלומר, התנהגויות) ללא מימוש, והמחלקה היורשת מתחייבת לממש התנהגויות אלו. אם מחלקה יורשת אינה מממשת את כל המתודות המופשטות של הוריה, היא חייבת להיות מוכרזת כמחלקה מופשטת בעצמה, ולא ניתן יהיה ליצור ממנה אובייקטים.
לדוגמה, בקוד Java:
במצב זה, הטענה כי
X יורשת ממחלקה מופשטת (abstract class) בשם Beeper, היא מחויבת לספק מימוש מלא לכל המתודות המופשטות שהוגדרו ב-Beeper.אפשרות 2 בשאלה, בפירוש הסביר שלה, טוענת כי "במחלקה
X קיים מימוש עבור המתודה add שהוגדרה במחלקה Beeper". טענה זו נכונה בהכרח, בהנחה ש-Beeper היא אכן מחלקה מופשטת המכריזה על מתודה מופשטת בשם add, וש-X היא מחלקה קונקרטית היורשת ממנה.העיקרון המרכזי כאן הוא ה"חוזה" שירושה ממחלקה מופשטת יוצרת. המחלקה המופשטת מגדירה חתימות של מתודות (כלומר, התנהגויות) ללא מימוש, והמחלקה היורשת מתחייבת לממש התנהגויות אלו. אם מחלקה יורשת אינה מממשת את כל המתודות המופשטות של הוריה, היא חייבת להיות מוכרזת כמחלקה מופשטת בעצמה, ולא ניתן יהיה ליצור ממנה אובייקטים.
לדוגמה, בקוד Java:
במצב זה, הטענה כי
X מממשת את add היא נכונה. תהליך זה של מתן מימוש במחלקה יורשת למתודה שהוגדרה במחלקת-העל נקרא Overriding (דריסה).