שש מחלקות (Sport, MRace, RGymnastic, Ball, TTennis, BBall) ושני ממשקים (IHall, IGroup). MRace/RGymnastic/Ball יורשות מ-Sport; RGymnastic ו-Ball מממשות IHall; TTennis ו-BBall יורשות מ-Ball; BBall גם מממשת IGroup ישירות.
שש מחלקות (Sport, MRace, RGymnastic, Ball, TTennis, BBall) ושני ממשקים (IHall, IGroup). MRace/RGymnastic/Ball יורשות מ-Sport; RGymnastic ו-Ball מממשות IHall; TTennis ו-BBall יורשות מ-Ball; BBall גם מממשת IGroup ישירות.
תרשים ההיררכיה (מ-400dpi crop, עמ' 8): MRace יורשת מ-Sport (קו רציף בלבד). RGymnastic יורשת מ-Sport (קו רציף) ומממשת את IHall (קו מקווקו) — שני קווים נפרדים היוצאים מ-RGymnastic. Ball יורשת מ-Sport (קו רציף) ומממשת את IHall (קו מקווקו) — שני קווים נפרדים היוצאים מ-Ball. TTennis יורשת מ-Ball (קו רציף בלבד). BBall יורשת מ-Ball (קו רציף) ומממשת את IGroup (קו מקווקו ארוך, ישירות מ-BBall אל IGroup, לא דרך Ball).
Sport <---(ירושה)--- MRace
Sport <---(ירושה)--- RGymnastic ---(ממשק, מקווקו)---> IHall
Sport <---(ירושה)--- Ball ---(ממשק, מקווקו)---> IHall
Ball <---(ירושה)--- TTennis
Ball <---(ירושה)--- BBall ---(ממשק, מקווקו)---> IGroup
כתבו עבור כל מחלקה את כותרת המחלקה.
עבור כל אחת מהפקודות הבאות קבעו אם היא נכונה או אינה נכונה, נמקו את קביעתכם:
- Sport s1 = new BBall();
- Sport s2 = new MRace();
- TTennis t1 = new Ball();
- BBall b1 = new IGroup();
- IHall i1 = new Ball();
- IHall i2 = new TTennis();
כתבו פעולה המקבלת מערך עצמים מסוג Sport. הפעולה תחזיר מספר עצמים המייצגים ענף ספורט קבוצתי שמתקיים באולם. שימו לב: יש לכתוב את הפעולה כך שהיא תעבוד נכון גם כאשר יתווספו לפרויקט מחלקות נוספות, כמו VBall (כדורעף), HBall (כדוריד) וכד'.
public static int Count(Sport[] s)
רוצים להוסיף לפרויקט מחלקה חדשה המתארת כדורגל. האם אפשר להוסיף את המחלקה FBall תוך שמירה על היררכיה קיימת, או שיש לשנות את ההיררכיה? ציירו תרשים של היררכיית המחלקות החדשה (כולל את המחלקה FBall).
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.