שאלה זו שני סעיפים א-ב שאין קשר ביניהם. ענה על שניהם. סעיף א: נתונות חמש מחלקות B, X, Y, Z, Run. התת-סעיפים (1)-(4) שלפניך מתייחסים למחלקות אלה. התת-סעיפים אינם קשורים זה לזה — ענה על כולם. בכל תת-סעיף: קבע אם מתקבלת שגיאת הידור (קומפילציה); אם כן — הסבר מדוע.
// נתון (אין לשנות) — הקשר לסעיף ב:
interface IPerform {
void Act();
int Train();
}
public class Singer : Artist , IPerform {
private int hits;
public Singer(string name, double sal) : base(sal, name) { this.hits = 5; }
public Singer(double sal, int hits) : base(sal, "Singer Name") { this.hits = hits; }
public Singer(int hits) : base(6532.6, "Some", "One") { this.hits = hits; }
public double Value() {return this.hits * this.Price(); }
public int GetNum() {return Artist.num; }
public override double Calc(double d) {return d * base.Calc(10.2); }
public override void Print() {base.Print(); Console.WriteLine("Singer");}
public void Act() {Console.WriteLine("I am singing");}
}
תת-סעיף (1) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public virtual void Foo(){}, ובמחלקה Run הוגדרה הפעולה public void Bar(Object g) {g.Foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (2) — בכל אחת מהמחלקות X, Y, Z הוגדרה הפעולה public virtual void Foo() {}, ובמחלקה Run הוגדרה הפעולה public void Bar(B g) {g.Foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (3) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public virtual void Foo(){}, ובמחלקה Run הוגדרה הפעולה public void Bar(B g) {g.Foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (4) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public virtual void Foo() {}, ובמחלקה Run הוגדרה הפעולה public void Bar(Object g) {g.Foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
אין קשר לסעיף א. לפניך המחלקה Singer שיורשת את המחלקה Artist והממשק IPerform שהמחלקה Singer מממשת. כתוב ב-C# את כותרת המחלקה Artist, את התכונות ואת הפעולות המתחייבות מהמחלקה Singer והממשק IPerform הנתונים. אין צורך לממש את הפעולות של המחלקה Artist. אין לשנות את המחלקה Singer ואת הממשק IPerform.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.