שאלת מבחן בתכנות מונחה עצמים - אוניברסיטת בר-אילן 2019 - מחלקות
מה נכון לגבי מתודה
1. ניתן לקרוא ל-
2. ניתן לקרוא ל-
3. ניתן לקרוא ל-
4. ניתן לקרוא ל-
5. ניתן לקרוא ל-
m שהגדרנו כ-protected final במחלקה A, ביחס לתתי-מחלקות (subclasses) של A?1. ניתן לקרוא ל-
m רק מתוך גוף המחלקה A, כיוון שתתי-מחלקות לא יורשות את m.2. ניתן לקרוא ל-
m מתוך גוף המחלקה A או מתוך תתי-מחלקות, ואם יש לה ערך החזרה הוא יהיה עצם מקובע (immutable).3. ניתן לקרוא ל-
m מכל מחלקה, ותתי-מחלקות לא יכולות לשנות את טיפוס ערך ההחזרה להיות כללי יותר.4. ניתן לקרוא ל-
m מתוך גוף המחלקה A או מתוך תתי-מחלקות, ותתי-המחלקות לא יכולות לדרוס את m.5. ניתן לקרוא ל-
m רק מתוך גוף המחלקה A, ותתי-מחלקות לא יכולות לשנות את טיפוס ערך ההחזרה להיות כללי יותר.העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד א2019סמסטר ב
★★★★★
מחלקותירושהOverridingהסתרת מידע
נתחו בנפרד את המשמעות של כל אחת מהמילים השמורות
protected ו-final בהקשר של מתודות, הרשאות גישה וירושה.התשובה הנכונה היא 4.
ננתח את המשמעות של כל מילה שמורה בהגדרת המתודה:
* `protected`: זוהי הרשאת גישה (access modifier). מתודה המוגדרת כ-
* `final`: כאשר מילה שמורה זו מצורפת לחתימה של מתודה, היא מונעת דריסה (Overriding) של המתודה בתתי-מחלקות. כלומר, תת-מחלקה של
שילוב שתי המשמעויות מוביל למסקנה שתשובה 4 היא היחידה שמתארת במדויק את המצב: הגישה למתודה מותרת לתתי-מחלקות (בזכות
ננתח את המשמעות של כל מילה שמורה בהגדרת המתודה:
* `protected`: זוהי הרשאת גישה (access modifier). מתודה המוגדרת כ-
protected נגישה מתוך המחלקה שבה היא הוגדרה (המחלקה A), מכל המחלקות באותה החבילה (package), וחשוב מכל - מתתי-מחלקות של A, גם אם הן נמצאות בחבילה אחרת. לכן, החלק הראשון של תשובה 4, "ניתן לקרוא ל-m מתוך גוף המחלקה A או מתוך תתי-מחלקות", הוא נכון.* `final`: כאשר מילה שמורה זו מצורפת לחתימה של מתודה, היא מונעת דריסה (Overriding) של המתודה בתתי-מחלקות. כלומר, תת-מחלקה של
A יורשת את המתודה m כפי שהיא, אך אינה יכולה לספק לה מימוש חדש. לכן, החלק השני של תשובה 4, "ותתי-המחלקות לא יכולות לדרוס את m", הוא נכון.שילוב שתי המשמעויות מוביל למסקנה שתשובה 4 היא היחידה שמתארת במדויק את המצב: הגישה למתודה מותרת לתתי-מחלקות (בזכות
protected), אך שינוי התנהגותה באמצעות דריסה נאסר עליהן (בזכות final).