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

נתונות 2 המחלקות הבאות:

public class AA{
    public AA(){
        System.out.println("AA constructor");
    }
    public void one() {
        System.out.println("one in AA");
    }
    public void two() {
        one();
    }
}
public class BB extends AA{
    public BB(){
        System.out.println("BB constructor");
    }
    public void one(){
        System.out.println("one in BB");
    }
    public void two() {
        System.out.println("two in BB");
    }
    public void three() {
        super.two();
    }
}
סעיף א

נתון קטע הקוד הבא (מספרי שורות אינם חלק מהקוד):

(1)  AA a = new AA();
(2)  BB b = new BB();
(3)  AA ab = new BB();
(4)  a.one();
(5)  ab.one();
(6)  b.one();
(7)  a.two();
(8)  ab.two();
(9)  b.two();
(10) ((BB)(ab)).three();
(11) b.three();
  1. עקבו אחרי ביצוע קטע הקוד ורשמו מה יהיה הפלט.
  2. האם אפשר להוסיף לקטע הקוד את 2 הפקודות הבאות? הסבירו את תשובתכם:
a.three();
((BB)a).three();
סעיף ב

כתבו פעולה המקבלת מערך הפניות לעצמים מסוג Object. הפעולה תדפיס כמה עצמים הם מסוג BB, כמה עצמים הם מסוג AA ולא סוג BB, וכמה עצמים הם לא מסוג AA.

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

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

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

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