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

היררכיה: Animal (בעל-חיים) היא מחלקת-על; Mammal (יונק), Fish (דג), Bird (ציפור) יורשות ישירות מ-Animal; Bat (עטלף) יורשת מ-Mammal. Fish ו-Bird מממשות את הממשק IHasEggs; Bird ו-Bat מממשות את הממשק ICanFly.

תרשים ההיררכיה: Animal בראש; Mammal, Fish, Bird יורשות ישירות מ-Animal (חצים רציפים); Bat יורשת מ-Mammal. חצים מקווקווים (מימוש ממשק): Fish ו-Bird -> IHasEggs{public void layingEggs()}; Bird ו-Bat -> ICanFly{public void fly()}.

Animal
  ^-- Mammal
  |     ^-- Bat ..implements..> ICanFly
  ^-- Fish ..implements..> IHasEggs
  ^-- Bird ..implements..> IHasEggs, ICanFly
סעיף א

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

סעיף ב

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

  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)

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

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

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

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