נתונות שתי מחלקות A ו-B:
public class A
{
protected int num;
public A() { }
public A (int num){ this.num = num; }
public int func(int k){ return k + this.num;}
}
public class B extends A {
private int x;
public boolean test() { return this.x > this.num; }
}
(א)לפניכם שלושה היגדים. קבעו לכל אחד מהם אם הוא נכון או אינו נכון, ונמקו את קביעתכם.
1. המחלקה A לא תעבור קומפילציה כי התכונה num אינה מקבלת ערך בבנאי הראשון.
2. המחלקה B לא תעבור קומפילציה כי אין לה שום בנאי.
3. המחלקה B לא תעבור קומפילציה כי בפעולה test יש שימוש בתכונה num והיא לא הוגדרה במחלקה זו.
1. המחלקה A לא תעבור קומפילציה כי התכונה num אינה מקבלת ערך בבנאי הראשון.
2. המחלקה B לא תעבור קומפילציה כי אין לה שום בנאי.
3. המחלקה B לא תעבור קומפילציה כי בפעולה test יש שימוש בתכונה num והיא לא הוגדרה במחלקה זו.
(ב)לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה A. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.
1. `public int func () { return 1; }`
2. `public int func (double k){ return (int) k; }`
3. `public double func (int k){ return 1.0*k; }`
4. `public int func (int p){ return p; }`
5. `public void func(int k, int p){ System.out.print(k*p); }`
1. `public int func () { return 1; }`
2. `public int func (double k){ return (int) k; }`
3. `public double func (int k){ return 1.0*k; }`
4. `public int func (int p){ return p; }`
5. `public void func(int k, int p){ System.out.print(k*p); }`
(ג)כותרת הפעולה func במחלקה A השתנתה:
(סעיף זה בגרסת המקור מתייחס למילת המפתח `virtual` הספציפית ל-C#; ראו הערת נאמנות למקבילה ב-Java.)
לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה B. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.
1. `public int func () { return 1; }`
2. `public int func (double k){ return (int) k; }`
3. `public double func (int k){ return 1.0*k; }`
4. `public int func (int p){ return p; }`
5. `public void func(int k, int p){ System.out.print(k*p); }`
(סעיף זה בגרסת המקור מתייחס למילת המפתח `virtual` הספציפית ל-C#; ראו הערת נאמנות למקבילה ב-Java.)
לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה B. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.
1. `public int func () { return 1; }`
2. `public int func (double k){ return (int) k; }`
3. `public double func (int k){ return 1.0*k; }`
4. `public int func (int p){ return p; }`
5. `public void func(int k, int p){ System.out.print(k*p); }`
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות