המשימה
נתונה המחלקה Person עם תכונה פרטית אחת: שם. בנה מחלקה בשם Student **שיורשת** מ-Person ומוסיפה תכונה אחת: ציון. המחלקה Student תכלול: • בנאי שמקבל שם וציון, ומעביר את השם לבנאי של האב. • פעולה מאחזרת לציון. • דריסה של הפעולה describe: היא תחזיר את השם, רווח, ואז את הציון בסוגריים. דוגמאות: Person בשם Dana → describe מחזיר Dana Student בשם Yossi, 95 → describe מחזיר Yossi (95) הנחיות: • השם שמור בתכונה **פרטית** של האב, ולכן Student אינו יכול לגשת אליו ישירות. הוא ניגש אליו דרך הפעולה המאחזרת שהאב מספק. זו הנקודה המרכזית בתרגיל. • הקריאה לבנאי האב חייבת להיות השורה הראשונה בבנאי של הבן. • אל תשכפל את התכונה name לתוך Student. אם עשית זאת — ההורשה לא נוצלה, ויש שני שמות שונים באותו עצם. [טבלה]
קוד הפתיחה
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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.