שרשרת שלמה: קודם משחזרים את Parent לפי מה ש-Child דורשת ממנה בפועל (סעיף א'), ואז מזהים בתוך אותו קוד היכן יש העמסה (ב') והיכן דריסה (ג'), ולבסוף כותבים פעולה חיצונית שמנצלת בדיוק את הדריסה הזו כדי להדפיס פולימורפית (ד').
שרשרת שלמה: קודם משחזרים את 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() המתאימה לסוג העצם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.