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

שלוש מחלקות A, B, C (B יורשת מ-A, C יורשת מ-B), עם מונה סטטי count המשותף לכולן ותכונה num פרטית לכל עצם. יש להשלים ביטויי יצירת עצמים כך שהפלט של מחלקת Driver יתאים לפלט הנתון, ולעקוב אחר שינויים בהיררכיית הירושה.

public class A {
    public static int count = 0;
    private int num;
    public A()
    {
        count++;
        num = count;
    }
    public A(int n)
    {
        num = n;
    }
    public override string ToString()
    {
        return count+","+ num;
    }
} // end of A
public class B :A {
    private string str;
    public B()
    {
        str="GOOD";
    }
    public B(string s): base(10)
    {
        str = s;
    }
    public override string ToString()
    {
        return base.ToString()+" "+str;
    }
}// end of B
public class C : B {
    private string str;
    public C(string s)
    {
        str = s;
    }
    public override string ToString()
    {
        return base.ToString()+" "+str;
    }
}// end of C

מחלקת Driver עם מערך A[6] — יש להשלים את שש ההשמות (1)-(6) כך שהפלט המתקבל מלולאת ההדפסה יהיה בדיוק כפי שמופיע בשאלון. אותה מחלקת Driver משמשת גם לסעיפים ב'-ג' (רק כותרת C משתנה בין הסעיפים).

public class Driver {
    public static void Main(string[] args) {
        A[] arr=new A[6];
        arr[0]= … // (1)
        arr[1]= … // (2)
        arr[2]= … // (3)
        arr[3]= … // (4)
        arr[4]= … // (5)
        arr[5]= … // (6)
        for(int i=0; i<arr.Length; i++)
            Console.WriteLine(arr[i]);
    }
}
הפלט הנדרש (סעיף א'):
4,10 Morning
4,1
4,2 GOOD Afternoon
4,10 Evening
4,3 GOOD Night
4,4 GOOD
סעיף א

נתונה מחלקה Driver הבאה: public class Driver { public static void Main(string[] args) { A[] arr=new A[6]; arr[0]= … // (1) arr[1]= … // (2) arr[2]= … // (3) arr[3]= … // (4) arr[4]= … // (5) arr[5]= … // (6) for(int i=0; i<arr.Length; i++) Console.WriteLine(arr[i]); } } השלימו פעולות השמות (1)-(6) כך שהפלט יהיה: 4,10 Morning 4,1 4,2 GOOD Afternoon 4,10 Evening 4,3 GOOD Night 4,4 GOOD

סעיף ב

כותרת המחלקה C השתנתה ל- public class C : A האם שינוי זה יגרום לשגיאה? אם כן — הסבירו את השגיאה, אם לא — רשמו מה יהיה הפלט של ה-Main אחרי השינוי.

סעיף ג

כותרת המחלקה C השתנתה ל- public class C האם שינוי זה יגרום לשגיאה? אם כן — הסבירו את השגיאה, אם לא — רשמו מה יהיה הפלט של ה-main אחרי השינוי.

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

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

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

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