אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 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 : A {
    private int x;
    public bool 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){ Console.WriteLine(k*p); }
סעיף ג

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

public virtual int Func(int k)

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

  1. public overload int Func () { return 1; }
  2. public overload int Func (double k){ return (int) k; }
  3. public overload double Func (int k){ return 1.0*k; }
  4. public overload int Func (int p){ return p; }
  5. public overload void Func (int k, int p){ Console.WriteLine(k*p); }
שאלות ותגובות על השאלה

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

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

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