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

csharp

public class A { protected virtual void A1() { Console.WriteLine("Hello A"); } protected void A2() { A1(); } }

public class B : A { protected override void A1() { Console.WriteLine("Bye B"); } }

סעיף א

נתון קטע קוד שרץ ללא שגיאות: A x = new B(t, s); h.g(n, d); עבור כל אחד מההיגדים 1-6 ציינו האם הוא נכון או אינו נכון. הסבירו את תשובתכם.

  1. הפעולה g חייבת להיות ציבורית (public).
  2. t הוא בהכרח משתנה מטיפוס פשוט (כמו: int, double וכד').
  3. h הוא בהכרח אובייקט.
  4. d יכול להיות שם של פעולה.
  5. B היא בהכרח מחלקה שיורשת מ-A (גם אם לא ישירות).
  6. ייתכן ש-A היא מחלקה שיורשת מ-B.
סעיף ב

(אין קשר לסעיף א') נתונה המחלקה A הבאה (A1 מדפיסה "Hello A"; A2 קוראת ל-A1). בקובץ נפרד, הגדירו מחלקה נוספת B שיורשת מהמחלקה A. במחלקה B ביצעו דריסה לפעולה A1 והיא מדפיסה "Bye B". מה יקרה אם נפעיל על אובייקט מסוג B את הפעולה A2?

  1. הפלט יהיה: Hello A
  2. הפלט יהיה: Bye B
  3. הפלט יהיה: Hello A / Bye B
  4. הפלט יהיה: Bye B / Hello A
שאלות ותגובות על השאלה

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

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

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