תרגול מדעי המחשב

הורשה ראשונה

בינוני C#

המשימה

נתונה המחלקה Person עם תכונה פרטית אחת: שם.

בנה מחלקה בשם Student **שיורשת** מ-Person ומוסיפה תכונה אחת: ציון.

המחלקה Student תכלול:
• בנאי שמקבל שם וציון, ומעביר את השם לבנאי של האב.
• פעולה מאחזרת לציון.
• דריסה של הפעולה describe: היא תחזיר את השם, רווח, ואז את הציון
  בסוגריים.

דוגמאות:
  Person בשם Dana        →  describe מחזיר  Dana
  Student בשם Yossi, 95  →  describe מחזיר  Yossi (95)

הנחיות:
• השם שמור בתכונה **פרטית** של האב, ולכן Student אינו יכול לגשת אליו
  ישירות. הוא ניגש אליו דרך הפעולה המאחזרת שהאב מספק. זו הנקודה
  המרכזית בתרגיל.
• הקריאה לבנאי האב חייבת להיות השורה הראשונה בבנאי של הבן.
• אל תשכפל את התכונה name לתוך Student. אם עשית זאת — ההורשה לא
  נוצלה, ויש שני שמות שונים באותו עצם.

```ds:table
{"title":"הפלט הצפוי","rows":[["עצם","describe"],["Person(\"Dana\")","Dana"],["Student(\"Yossi\", 95)","Yossi (95)"],["Student(\"Noa\", 100)","Noa (100)"]]}
```

קוד הפתיחה

using System;

class Person {
    private string name;

    public Person(string name) {
        this.name = name;
    }

    public string GetName() {
        return this.name;
    }

    public virtual string Describe() {
        return this.name;
    }
}

class Student : Person {
    // הוסף כאן את התכונה grade — ורק אותה

    public Student(string name, int grade) : base(name) {
        // אתחל את grade
    }

    public int GetGrade() {
        return 0;
    }

    public override string Describe() {
        // החזר "שם (ציון)" — היעזר ב-GetName
        return "";
    }
}

class Program {
    static void Main() {
        Person p = new Person("Dana");
        Student s = new Student("Yossi", 95);

        Console.WriteLine(p.Describe());   // Dana
        Console.WriteLine(s.Describe());   // Yossi (95)
        Console.WriteLine(s.GetName());    // Yossi
        Console.WriteLine(s.GetGrade());   // 95

        Person[] all = { p, s, new Student("Noa", 100) };
        for (int i = 0; i < all.Length; i++) {
            Console.WriteLine(all[i].Describe());   // Dana / Yossi (95) / Noa (100)
        }
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא קריאה לפעולת האב
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.