אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2026 · אביב מועד א · שאלה 7כל שאלות המבחן ←
תכנות מונחה עצמיםפולימורפיזם ומחלקות מופשטות

נתון פרויקט שהוגדרו בו שלוש מחלקות Employee, Manager, Intern ומחלקה Driver, כך:

public class Employee {
    private int seniority; // ותק
    public Employee(int seniority) {
        this.seniority = seniority;
    }
    public int getSeniority() {
        return this.seniority;
    }
    public boolean check(Employee e) {
        System.out.println("EmpCheck");
        return this.seniority > e.seniority;
    }
}
public class Manager extends Employee {
    public Manager(int seniority) {
        super(seniority);
    }
    public boolean check(Manager m) {
        System.out.println("MgrCheck");
        return this.getSeniority() == m.getSeniority();
    }
}
public class Intern extends Employee {
    private int mentorId;
    public Intern(int seniority, int mentorId) {
        super(seniority);
        this.mentorId = mentorId;
    }
    public boolean check(Employee e) {
        System.out.println("IntCheck");
        if (!(e instanceof Intern)) {
            return true;
        }
        Intern other = (Intern) e;
        return this.mentorId == other.mentorId;
    }
}
public class Driver
{
    public static void main(String[] args)
    {
        Employee e1 = new Manager(15);
        Manager m1 = new Manager(15);
        Employee e2 = new Employee(10);
        Employee i1 = new Intern(2, 800);
        Intern i2 = new Intern(2, 900);
        Intern i3 = new Intern(5, 800);
        (1) System.out.println(e1.check(m1));
        (2) System.out.println(m1.check(e1));
        (3) System.out.println(m1.check(m1));
        (4) System.out.println(i1.check(e2));
        (5) System.out.println(i1.check(i2));
        (6) System.out.println(i1.check(i3));
        (7) System.out.println(e2.check(i1));
    }
}
סעיף א

עבור כל אחת מהפקודות 1–7, כתבו מה יהיה הפלט של הפקודה.

סעיף ב

נתונה הפקודה: System.out.println(i1.check(XXX) כאשר XXX הוא משתנה שהוגדר בפעולה הראשית main במחלקה Driver. כתבו את כל המשתנים שאפשר לשים במקום XXX כדי שלאחר ביצוע הפקודה יודפס הפלט "IntCheck false".

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

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

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

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