נתונה היררכיית המחלקות הבאה:
Animal (בעל-חיים) היא מחלקת-העל; Mammal (יונק), Fish (דג) ו-Bird (ציפור) יורשות ישירות מ-Animal; Bat (עטלף) יורשת מ-Mammal. Fish ו-Bird מממשות את הממשק IHasEggs; Bird ו-Bat מממשות את הממשק ICanFly.
Animal
^-- Mammal
| ^-- Bat ..implements..> ICanFly
^-- Fish ..implements..> IHasEggs
^-- Bird ..implements..> IHasEggs, ICanFly
בממשק IHasEggs נמצאת כותרת הפעולה: public void LayingEggs()
בממשק ICanFly נמצאת כותרת הפעולה: public void Fly()
בכל מחלקה מוגדרת פעולה בונה ללא פרמטרים.
סעיף א
לכל מחלקה, כתבו את כותרת המחלקה.
סעיף ב
עבור הפעולות הבאות קבעו אם הן חוקיות. אם הפעולה אינה חוקית, יש להסביר את הסיבה לזה.
Animal a=new Bat();Fish f=new IHasEggs();ICanFly cf=new Bird(); cf=new Bat();Mammal m=new Bat(); m.Fly();Animal a=new Bird(); ((Bird)a).Fly();IHasEggs he=new Bird(); he.Fly();
סעיף ג
כתבו פעולה המקבלת כפרמטר מערך של בעלי חיים (מערך הפניות לעצמים מסוג Animal), ומחזירה את מספר בעלי החיים המסוגלים לעוף הנמצאים במערך.
public static int CountFlyers(Animal[] animals)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.