אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2021 · קיץ מועד ב · שאלה 5כל שאלות המבחן ←
תכנות מונחה עצמיםירושה

שרשרת שלמה: קודם משחזרים את Parent לפי מה ש-Child דורשת ממנה בפועל (סעיף א'), ואז מזהים בתוך אותו קוד היכן יש העמסה (ב') והיכן דריסה (ג'), ולבסוף כותבים פעולה חיצונית שמנצלת בדיוק את הדריסה הזו כדי להדפיס פולימורפית (ד').

public class Child extends Parent
{
    private int y;

    public Child(String name, double x)
    {
        super(x, name);
        this.y = 10;
        System.out.println(this.x);
    }
    public Child(int y)
    {
        super(6.5, "David", "Cohen");
        this.y = y;
    }
    public int sum()
    {
        System.out.println(this.name+" "+this.getLastName());
        return this.y + this.method();
    }
    public double calculate(double d)
    {
        return d * super.calculate(5.2);
    }
    public void print()
    {
        super.print();
        System.out.println("Child");
    }
    public int getYear()
    {
        return Parent.year;
    }
}
סעיף א

כתבו את מחלקת העל Parent (המורישה) של מחלקת Child. מחלקת העל צריכה להכיל את כל התכונות והפעולות המתחייבות ממחלקת Child. אין צורך לממש (למלא בהיגיון עסקי) את הפעולות של מחלקת העל, ואין לשנות את מחלקת Child.

סעיף ב

היכן בשתי המחלקות (Parent, Child) ישנה העמסה (overloading)? הסבירו את תשובתכם.

סעיף ג

היכן בשתי המחלקות (Parent, Child) ישנה דריסה (overriding)? הסבירו את תשובתכם.

סעיף ד

ממשו במחלקה חיצונית את הפעולה הבאה: public static void output(Object[] arr) — הפעולה מקבלת מערך של עצמים. עבור כל עצם מסוג Parent או Child במערך, הפעולה תזמן את פעולת print() המתאימה לסוג העצם.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי