שלושה ממשקים Inter1(g1), Inter2(g2), Inter3(g3), ושלוש מחלקות F, G, H (רק H מודפסת עם כותרות מלאות: g2,g3,g4; F ו-G מודפסות עם "…" בלבד). קטע ה-main מגלה את כל הקשרים.
Inter1 x = new F();
G y = new G();
Inter3 z = new H();
x = y;
y = new H();
y.g2();
z.g3();
((H)z).g4();
z = new F();
מבנה הירושה/מימוש הנגזר מהקוד: F ← Inter1,Inter3 (מימוש); G ← Inter1,Inter2 (מימוש); H extends G, וגם H ← Inter3 (מימוש נוסף, ישיר).
Inter1(g1) Inter2(g2) Inter3(g3)
▲ ▲ ▲
|‑‑‑‑‑‑‑‑‑‑‑‑| |
F G────────────┘(H ממשת ישירות)
▲
| (ירושה)
H (g2 [דריסה], g3, g4)
סעיף א
השלימו את תרשים ה-UML: הוסיפו כותרות הפעולות במחלקות F ו-G, ציירו קשרים בין המחלקות והממשקים.
סעיף ב
כתבו פעולה המקבלת מערך עצמים מסוג Object. הפעולה מדפיסה את מספר האיברים שעבורם אפשר להפעיל את הפעולה g1(), ואת מספר האיברים שעבורם אי אפשר להפעיל את הפעולה g3().
public static void countG1G3(Object[] arr)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.