עשרה תרחישים בלתי-תלויים (5 בכל סעיף) שבודקים את אותה הבחנה יסודית — שם+פרמטרים+טיפוס-החזרה קובעים אם משהו הוא דריסה, העמסה, או כפילות פסולה — כשההבדל בין Java ל-C# (וירטואליות אוטומטית מול virtual/override מפורשים) הופך שניים מהתרחישים (ב-4, ב-5) להתנהג אחרת בכל שפה.
עשרה תרחישים בלתי-תלויים (5 בכל סעיף) שבודקים את אותה הבחנה יסודית — שם+פרמטרים+טיפוס-החזרה קובעים אם משהו הוא דריסה, העמסה, או כפילות פסולה — כשההבדל בין Java ל-C# (וירטואליות אוטומטית מול virtual/override מפורשים) הופך שניים מהתרחישים (ב-4, ב-5) להתנהג אחרת בכל שפה.
public class A
{
public int Foo(int i)
{
return i;
}
}
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה A: שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public int Foo() { return 1; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה A: שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public int Foo(double i){ return (int)i; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה A: שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public double Foo(int i){ return i; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה A: שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public double Foo(double i){ return i; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה A: שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public void Foo(double i){ Console.Write(i); }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה B (היורשת מ-A): שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public int Foo() { return 10; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה B (היורשת מ-A): שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public override int Foo(int i){ return i*10; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה B (היורשת מ-A): שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public override double Foo(int i){ return i*10; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה B (היורשת מ-A): שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public double Foo(double i){ return i*10; }
עבור הפעולה הבאה קבעו מה יתרחש אם היא מתווספת למחלקה B (היורשת מ-A): שגיאת קומפילציה / שגיאת זמן ריצה / קוד תקין-דריסה (overriding) / קוד תקין-העמסה (overloading). public override void Foo(double i){ Console.Write(i); }
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.