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

נתונה היררכיית המחלקות הבאה:

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()

בכל מחלקה מוגדרת פעולה בונה ללא פרמטרים.

סעיף א

לכל מחלקה, כתבו את כותרת המחלקה.

סעיף ב

עבור הפעולות הבאות קבעו אם הן חוקיות. אם הפעולה אינה חוקית, יש להסביר את הסיבה לזה.

  1. Animal a=new Bat();
  2. Fish f=new IHasEggs();
  3. ICanFly cf=new Bird(); cf=new Bat();
  4. Mammal m=new Bat(); m.Fly();
  5. Animal a=new Bird(); ((Bird)a).Fly();
  6. IHasEggs he=new Bird(); he.Fly();
סעיף ג

כתבו פעולה המקבלת כפרמטר מערך של בעלי חיים (מערך הפניות לעצמים מסוג Animal), ומחזירה את מספר בעלי החיים המסוגלים לעוף הנמצאים במערך.

public static int CountFlyers(Animal[] animals)

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

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

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

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