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

לפניכם המחלקות E, F, G, H:

public class E {
   protected int x;
   public E(){
     this.x = 5;
     Console.WriteLine("E x = " + this.x);
   }
   public E(int x) {
     this.x = x;
   }
   public int Calc() {
     return this.x;
   }
}
public class F: E {
   private static int count = 0;
   public F(): base(8){
     count++;
   }
   public F(int x): base(x) {
     count++;
     Console.WriteLine("F count = " + count);
   }
   public int Calc() {
     return this.x + 10;
   }
}
public class G: F {
   public G(): base(3) {
     this.x = this.x * 2;
     Console.WriteLine("G x = " + this.x);
   }
   public int Calc() {
     return base.Calc() + 1;
   }
   public int Squre() {
     return this.x*this.x;
   }
}
public class H: E {
   public H(): base(){
     this.x = this.x + 5;
     Console.WriteLine ("H x = " + this.x);
   }
   public int Calc() {
     return this.x/2;
   }
}

נתונה המחלקה Tester:

public class Tester
{
    public static void Main(string[] args)
    {
        E e1 = new E();
        E e2 = new F();
        F f1 = new G();
        E e3 = new H();
        E a = new G();
        E b = new H();
        F c = new G();
        // ***
    }
}
סעיף א

הציגו את העצמים שנוצרו בפעולה Main (סוג העצם, סוג ההפניה וערכי התכונות), וכתבו את הפלט של הפעולה.

סעיף ב1

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה: 1. F f = new E();

סעיף ב2

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה: 2. G g = new F();

סעיף ב3

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה: 3. F f2 = (F)a;

סעיף ב4

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה: 4. G g2 = (G)c;

סעיף ב5

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה: 5. F f3 = (F)b;

סעיף ב6

הציבו פקודה זו בפעולה Main במקום המצוין לעיל ב-// ***. כתבו במחברת האם הקוד המתקבל תקין או לא תקין. אם הקוד תקין – כתבו את הפלט. אם הקוד אינו תקין, הסבירו מדוע. שימו לב: אין קשר בין הפקודות; כל פקודה מוצבת בנפרד תוך שהמצב מ-א (e1,e2,f1,e3,a,b,c) נשמר. הפקודה:

6. Console.WriteLine(((G)a).Squre());

סעיף ב7

7. Console.WriteLine(a.Squre());

סעיף ב8

8. Console.WriteLine(((H)b).Calc());

סעיף ב9

9. Console.WriteLine(((G)b).Squre());

סעיף ב10

10. Console.WriteLine(f1.Squre());

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

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

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

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