אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · קיץ מועד ב · שאלה 3כל שאלות המבחן ←
עציםעצים בינאריים

נתון פרויקט שבו הוגדרו מחלקות V, W, X, Y, Z.

הפעולה Stam() מומשה בשתי מחלקות. במחלקה נוספת באותו פרויקט, בשם Tester, נכתב קטע הקוד הבא בפעולה main, והוא תקין:

V v1 = new V(9);
V v2 = new Y("9");
V v3 = new Z(new V(6));
W w1 = new W(z1, v2);
Y y1 = new Y("5");
Z z1 = new W(4, 1.1, 'Z', true);
Z z2 = new Z();
Z z3 = new X();

z2.Stam();  // תקין ומדפיס "Good"
z3.Stam();  // תקין ומדפיס "Good"
w1.Stam();  // תקין ומדפיס "Bad"

// חמש הפקודות האלה גורמות לשגיאות:
X x1 = new W();           // שגיאת קומפילציה
v1.Stam();              // שגיאת קומפילציה
y1.Stam();              // שגיאת קומפילציה
((Z)y1).Stam();         // שגיאת קומפילציה
((Z)v2).Stam();         // שגיאת זמן ריצה
סעיף א

שרטטו תרשים היררכיה UML המתאר עץ ירושה אפשרי עבור מחלקות הפרויקט.

סעיף ב

ציינו באילו מחלקות מומשה הפעולה Stam().

סעיף ג

כתבו את כותרות כל המחלקות וכותרות הפעולות הבונות (הבנאים) הנדרשות. אין צורך לממש את הבנאים.

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

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

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

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