Father מגדירה smile/run; Son יורשת ודורסת את שתיהן, מוסיפה work; GrandSon יורשת מ-Son, דורסת smile/run (לא work), מוסיפה play. כל שלוש הסעיפים בודקים הכרעת compile-time מול runtime.
Father מגדירה smile/run; Son יורשת ודורסת את שתיהן, מוסיפה work; GrandSon יורשת מ-Son, דורסת smile/run (לא work), מוסיפה play. כל שלוש הסעיפים בודקים הכרעת compile-time מול runtime.
public class Father {
public Father(){
}
public virtual void Smile() {
Console.WriteLine("Father is smiling");
}
public virtual void Run() {
Console.WriteLine("Father is running");
}
}
public class Son :Father {
public Son(): base(){
}
public override void Smile() {
Console.WriteLine("Son is smiling");
}
public override void Run() {
Console.WriteLine("Son is running");
}
public virtual void Work() {
Console.WriteLine("Son is working");
}
}
public class GrandSon :Son {
public GrandSon():base() {
}
public override void Smile() {
Console.WriteLine("GrandSon is smiling");
}
public override void Run() {
Console.WriteLine("GrandSon is running");
}
public void Play() {
Console.WriteLine("GrandSon is playing");
}
}
עבור כל אחד משלושת קטעי הקוד הבאים, רשמו אם הוא תקין או לא. אם הקוד תקין – ציינו מה יהיה הפלט, אם הקוד אינו תקין – הסבירו מהו סוג השגיאה (שגיאת קומפילציה או שגיאת זמן ריצה).
- Father f = (Son)(new GrandSon());
- Object o = new Son(); Father f = o;
- Father f = new Father(); Object o = f; GrandSon gs = (GrandSon)o;
עבור כל אחד מחמשת קטעי הקוד הבאים רשמו אם הוא תקין או לא. אם הקוד תקין – ציינו מה יהיה הפלט, אם הקוד אינו תקין – הסבירו מהו סוג השגיאה (שגיאת קומפילציה או שגיאת זמן ריצה).
- Son s = new Father(); s.smile();
- Father f = new Son(); f.smile();
- Father f = new Son(); f.work();
- Son s = new GrandSon(); s.play();
- Father f = new GrandSon(); f.smile();
עקבו אחרי קטע קוד הבא ורשמו מה יהיה הפלט. Father[] f = new Father[3]; f[0] = new Father(); f[1] = new Son(); f[2] = new GrandSon(); for (int i = 0; i < f.Length; i++) if (f[i] is Son) ((Son)f[i]).Run();
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.