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