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

קריאה לפעולת האב

בינוני Java

המשימה

בנה שלוש מחלקות בשרשרת הורשה:

• A — תכונה פרטית a, ופעולה getSum שמחזירה את a.
• B — יורשת מ-A, מוסיפה תכונה b, ו-getSum שלה מחזירה a+b.
• C — יורשת מ-B, מוסיפה תכונה c, ו-getSum שלה מחזירה a+b+c.

המפתח: **אף מחלקה אינה מחשבת מחדש את הסכום של הרמות שמעליה.**
כל אחת קוראת לגרסה של האב ומוסיפה עליה את התכונה שלה בלבד.

דוגמה עבור C שנבנה עם a=1, b=2, c=3:
  getSum מחזיר 6

הנחיות:
• קריאה לגרסה של האב מתוך הדריסה נעשית ב-super בג׳אווה וב-base
  ב-C#. בלעדיה, קריאה סתם ל-getSum בתוך getSum היא קריאה עצמית
  אינסופית.
• כל בנאי מעביר לאב את מה ששייך לאב.
• התכונות פרטיות בכל רמה, ואף אחת מהן אינה מוגדרת פעמיים.

```ds:table
{"title":"התוצאות הצפויות","rows":[["עצם","getSum"],["A(5)","5"],["B(1,2)","3"],["C(1,2,3)","6"],["A x = C(4,5,6)","15"]]}
```

קוד הפתיחה

class A {
    private int a;

    public A(int a) {
        this.a = a;
    }

    public int getSum() {
        return this.a;
    }
}

class B extends A {
    // הוסף כאן את התכונה b

    public B(int a, int b) {
        super(a);
        // אתחל את b
    }

    @Override
    public int getSum() {
        // החזר את סכום האב ועוד b — היעזר ב-super.getSum()
        return 0;
    }
}

class C extends B {
    // הוסף כאן את התכונה c

    public C(int a, int b, int c) {
        super(a, b);
        // אתחל את c
    }

    @Override
    public int getSum() {
        // אותו רעיון, רמה אחת למטה
        return 0;
    }
}

public class Main {
    public static void main(String[] args) {
        System.out.println(new A(5).getSum());         // 5
        System.out.println(new B(1, 2).getSum());      // 3
        System.out.println(new C(1, 2, 3).getSum());   // 6

        A x = new C(4, 5, 6);
        System.out.println(x.getSum());                // 15
    }
}

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

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