אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2025 · קיץ מועד א · שאלה 12כל שאלות המבחן ←
תכנות מונחה עצמים›ירושה

java

public class A { protected int i; public A (int i) { this.i = i; } }

public class B extends A { public B (int i) { super (i + 1); } public boolean foo (Object myObject) { System.out.println ("foo1"); return ((myObject instanceof B) && (this.i == ((B)myObject).i)); } public boolean foo (B myB, int num) { System.out.println ("foo2"); return (this.i + myB.i) < num; } }

public class C extends B { public C (int i) { super (i); } public boolean foo (int num) { System.out.println ("foo3"); return (this.i != num); } }

public class D extends B { public D (int i) { super (i * 2); } public boolean foo (B myB, int num) { System.out.println ("foo4"); return super.foo (myB, 20); } }

// --- המחלקה Tester (סעיף ב) --- public class Tester { public static void main (String[] args) { A a = new A (1); B b = new B (2); C c = new C (3); D d = new D (4); B bd = new D (5); A ac = new C (6); //*** } }

סעיף א

סרטטו את תרשים ההייררכייה של המחלקות A , B , C , D . יש לסמן ירושה באמצעות החץ ◁——— .

סעיף ב(1)

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

סעיף ב(2)

במקום המסומן ב־*** נוסף קטע הקוד התקין שלפניכם: System.out.println (c.foo(5)); //(1) System.out.println (d.foo(a)); //(2) System.out.println (bd.foo(b)); //(3) System.out.println (bd.foo(b, 1)); //(4) System.out.println (((C)ac).foo(c)); //(5) כתבו את הפלט של הפעולה (כתבו את מספר השורה המשויך לכל פלט).

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

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

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

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