נתונות שתי מחלקות A ו-B:
נתונות שתי מחלקות 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; }
}
סעיף א
לפניכם שלושה היגדים. קבעו לכל אחד מהם אם הוא נכון או אינו נכון, ונמקו את קביעתכם.
- המחלקה A לא תעבור קומפילציה כי התכונה num אינה מקבלת ערך בבנאי הראשון.
- המחלקה B לא תעבור קומפילציה כי אין לה שום בנאי.
- המחלקה B לא תעבור קומפילציה כי בפעולה Test יש שימוש בתכונה num והיא לא הוגדרה במחלקה זו.
סעיף ב
לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה A. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.
public int Func () { return 1; }public int Func (double k){ return (int) k; }public double Func (int k){ return 1.0*k; }public int Func (int p){ return p; }public void Func (int k, int p){ Console.WriteLine(k*p); }
סעיף ג
כותרת הפעולה Func במחלקה A השתנתה:
public virtual int Func(int k)
לכל אחת מהפעולות הבאות קבעו אם אפשר להגדיר אותה במחלקה B. אם הוספת הפעולה תגרום לשגיאה יש להסביר אותה.
public overload int Func () { return 1; }public overload int Func (double k){ return (int) k; }public overload double Func (int k){ return 1.0*k; }public overload int Func (int p){ return p; }public overload void Func (int k, int p){ Console.WriteLine(k*p); }
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.