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

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

מחלקהיורשת מ-תיאור
ApplicationObjectמחלקת אב – יישום כללי במערכת
WebServiceApplicationשירות רשת (Web)
MobileAppApplicationאפליקציה לנייד
BackendServiceWebServiceשירות צד שרת
FrontendAppWebServiceשירות צד לקוח
DataQueryMobileAppכלי לשליפת נתונים באפליקציה ניידת
סעיף א

שרטטו את עץ הירושה הכולל של המחלקות (Class Diagrams).

סעיף ב

נתון קטע קוד מתוך הפעולה הראשית (main):

Application a1 = new Application();
Application a2 = new FrontendApp();
Application a3 = new MobileApp();
WebService ws1 = new BackendService();
MobileApp ma1 = new DataQuery();

לפניכם שמונה קטעי קוד. עבור כל אחד מהסעיפים יש לציין אם הקוד תקין או לא. אם הקוד אינו תקין – יש להסביר למה הוא אינו תקין ולציין את סוג השגיאה (שגיאת קומפילציה/הידור או שגיאת זמן ריצה). שימו לב: אין קשר בין הקטעים.

  1. WebService ws2 = new Application();
  2. WebService ws3 = a2;
  3. WebService ws4 = (WebService)a2;
  4. WebService ws5 = (WebService)a3;
  5. BackendService bs1 = (BackendService)ws1;
  6. MobileApp ma2 = (MobileApp)a1;
  7. Application a4 = (MobileApp)(new DataQuery());
  8. FrontendApp fa1 = (WebService)(new BackendService());
סעיף ג

לכל שירות במערכת יש עלות תפעול משלו (Cost). המטרה היא לחשב את סכום העלויות של כל היישומים שהם שירותי הרשת (WebService).

  1. באילו מהמחלקות יש להגדיר את הפעולה public double getCost() המחזירה את עלות התפעול? הסבירו את תשובתכם.
  2. כתבו פעולה סטטית בשם SumWebServiceCost המקבלת מערך של יישומים ומחזירה את סכום העלויות של כל שירותי הרשת. כותרת הפעולה:
public static double sumWebServiceCost(Application[] arr)

הניחו שהפעולה public double getCost() מומשה כראוי.

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

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

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

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