אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2025 · קיץ מועד Special · שאלה 10כל שאלות המבחן ←
תכנות מונחה עצמים›מחלקות ואובייקטים

המחלקה Y מגדירה שתי גרסאות עמוסות (overload) של Do1: Do1(int) ו-Do1(string), ופעולה Do2(int) שקוראת ל-Do1. Z יורשת מ-Y, דורסת (override) רק את Do1(int), ומוסיפה Do2() בלי פרמטרים (העמסה חדשה, לא דריסה) ו-Do3(int). בכל אחד מ-12 קטעי הקוד העצמאיים מציבים קטע אחד בפעולת Main וקובעים אם הוא תקין - ואם כן, מה הפלט; אם לא - למה.

public class Y
{
    public Y()
    {
        Console.WriteLine("ctor Y");
    }
    public virtual void Do1(int x)
    {
        Console.WriteLine("Y Do1 int " + x);
    }
    public void Do1(string str)
    {
        Console.WriteLine("Y Do1 String " + str);
    }
    public void Do2(int x)
    {
        Console.WriteLine("Y Do2 " + x);
        Do1(x);
    }
}

public class Z : Y
{
    public Z()
    {
        Console.WriteLine("ctor Z");
    }
    public override void Do1(int x)
    {
        Console.WriteLine("Z Do1 int " + x);
    }
    public void Do2()
    {
        Console.WriteLine("Z Do2");
        Do1(2);
    }
    public void Do3(int x)
    {
        Console.WriteLine("Z Do3 " + x);
        Do1(3);
    }
}
public class Tester{
    public static void Main(string[] args)
    {
    }
}
סעיף א

קטע קוד 1: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y y = new Y(); y.Do1(2);

סעיף ב

קטע קוד 2: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Z z = new Z(); z.Do1("str");

סעיף ג

קטע קוד 3: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Z z = new Z(); Y y = z; y.Do1("str");

סעיף ד

קטע קוד 4: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y y = new Y(); Z z = y; z.Do1(2);

סעיף ה

קטע קוד 5: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y y = new Y(); Z z = (Z)y; z.Do1(2);

סעיף ו

קטע קוד 6: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y yz = new Z(); yz.Do1("str");

סעיף ז

קטע קוד 7: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y yz = new Z(); yz.Do3(4);

סעיף ח

קטע קוד 8: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Z z = new Z(); z.Do2();

סעיף 9

קטע קוד 9: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Z yz = new Y(); yz.Do2();

סעיף 10

קטע קוד 10: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y yz = new Z(); yz.Do2();

סעיף 11

קטע קוד 11: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y yz = new Z(); ((Z)yz).Do2();

סעיף 12

קטע קוד 12: יש לציין האם הקוד תקין. אם הקוד תקין - כתבו את הפלט. אם הקוד אינו תקין, הסבירו את השגיאה. Y yz = new Z(); ((Z)yz).Do1("hh");

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

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

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

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