המשימה
נתונה המחלקה 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)"]]}
```
קוד הפתיחה
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public String describe() {
return this.name;
}
}
class Student extends Person {
// הוסף כאן את התכונה grade — ורק אותה
public Student(String name, int grade) {
// קרא לבנאי של האב, ואז אתחל את grade
super(name);
}
public int getGrade() {
return 0;
}
@Override
public String describe() {
// החזר "שם (ציון)" — היעזר ב-getName
return "";
}
}
public class Main {
public static void main(String[] args) {
Person p = new Person("Dana");
Student s = new Student("Yossi", 95);
System.out.println(p.describe()); // Dana
System.out.println(s.describe()); // Yossi (95)
System.out.println(s.getName()); // Yossi
System.out.println(s.getGrade()); // 95
Person[] all = { p, s, new Student("Noa", 100) };
for (int i = 0; i < all.length; i++) {
System.out.println(all[i].describe()); // Dana / Yossi (95) / Noa (100)
}
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.