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

נתונה היררכיית המחלקות הבאה, הכוללת שלוש מחלקות: Kid, Student, Worker ושלושה ממשקים: ICanRead, ICanWrite, ICanSpeak.

תרשים ההיררכיה:

  • הממשק ICanWrite: void Write()
  • הממשק ICanRead: void Read()
  • הממשק ICanSpeak: void Speak()
  • המחלקה Kid: void Speak(), void Eat() — מממשת את ICanSpeak.
  • המחלקה Worker: void Read(), void Speak() — מממשת את ICanRead ואת ICanSpeak.
  • המחלקה Student: void Write(), void Read(), void Sleep() — יורשת מ-Kid, ומממשת את ICanWrite ואת ICanRead.

(בתרשים: חץ רציף – ירושה, חץ מקווקו – מימוש ממשק.)

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

סעיף א

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

סעיף ב

השלימו את שלוש השורות (1)-(3) כך שקטע קוד שלפניכם יעבור בלי שגיאות קומפילציה וזמן ריצה: _(1) x = new Worker(); _(2) y = new Kid(); _(3) z = new Student(); x = y; y = new Student(); y.Eat(); z.Read(); ((Student)z).Speak(); ((Kid)z).Eat(); z = new Worker();

סעיף ג

כתבו פעולה המקבלת כפרמטר מערך מטיפוס ICanSpeak. הפעולה תעבור על איברי המערך ותקרא לפעולה write(), אם היא קיימת בעבור העצם. אם הפעולה write() אינה קיימת – תיקרא הפעולה speak().

public static void WriteOrSpeak(ICanSpeak[] arr)

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

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

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

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