אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד א · שאלה 4כל שאלות המבחן ←
תכנות מונחה עצמיםירושה

נתונות שתי מחלקות 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 והיא לא הוגדרה במחלקה זו.
סעיף ב

לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה 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); }
סעיף ג

כותרת הפעולה func במחלקה A השתנתה:

(סעיף זה בגרסת המקור מתייחס למילת המפתח virtual הספציפית ל-C#; ראו הערת נאמנות למקבילה ב-Java.)

לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה B. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי