אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2017 · קיץ מועד א · שאלה 16כל שאלות המבחן ←
תכנות מונחה עצמיםפולימורפיזם ומחלקות מופשטות

בשאלה זו ארבעה סעיפים א-ד; אין קשר בין הסעיפים; יש לענות על כולם.

public static void Main(string[] args) {
    C c = new A();
    B b1 = (B) (new A());
    B b2 = new D();
    A a = new D();
}

public class City { ____(1)____ int students; }
public class School : City {
    void Poll() { Console.WriteLine("There are " + students + " in the school "); }
}

public class Quest {
    private int num;
    private static int count = 0;
    public Quest() {
        count++;
        num = count;
    }
    public void PrintNow() {
        Console.WriteLine(num + "" + count);
    }
}
סעיף א

נתונות המחלקות A והמחלקה B היורשת מ-A. ההוראה A a1 = new B(); עוברת הידור (קומפילציה) ורצה בצורה תקינה. עבור כל אחד מן המשפטים i-iii שלפניך, קבע אם אפשר לכתוב את ההוראה בלי המרה מפורשת (casting): i. Object obj = a1; ii. A a2 = a1; iii. B b1 = a1;

סעיף ב

נתונה הפעולה main במחלקה Program: C c = new A(); B b1 = (B) (new A()); B b2 = new D(); A a = new D(); קבע איזו מן האפשרויות i-v שלפניך מתארת נכון את הקשר בין המחלקות A, B, C, D, לפי הפעולה main הנתונה: i. C יורשת מ-A, B יורשת מ-A, D יורשת מ-A. ii. A יורשת מ-C, B יורשת מ-A, D יורשת מ-A. iii. C יורשת מ-A, B יורשת מ-A, D יורשת מ-B. iv. A יורשת מ-C, C יורשת מ-B, D יורשת מ-A. v. A יורשת מ-C, B יורשת מ-A, D יורשת מ-B, C יורשת מ-B.

סעיף ג

נתונות הגדרות המחלקות City ו-School (School יורשת מ-City): public class City{ (1) int students; } public class School extends City { void poll() { System.out.println("There are "+ students + " in the school "); } } כדי שלא תהיה שגיאת הידור (קומפילציה), אפשר להשלים את החלק המסומן (1) באמצעות אחת מן האפשרויות הבאות. בחר את האפשרות המתאימה: (1) לכתוב public, private, או protected. (2) לכתוב רק public או private. (3) לכתוב רק public או protected. (4) לכתוב רק protected. (5) לכתוב רק public. (6) לכתוב רק private.

סעיף ד

נתונה המחלקה Quest (num אינסטנס, count סטטי, גדל בכל בנייה, num מקבל את הערך של count באותו רגע; printNow מדפיסה num + "" + count). קבע כמה עצמים (אובייקטים) יש ליצור מן המחלקה Quest, ועל איזה מהם יש להפעיל את הפעולה printNow, כדי שהפלט יהיה 35.

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

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

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

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