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

אם למדת מסלול זה, Java, ענה על אחת מן השאלות 14-13 (25 נקודות). לפניך פרויקט שהוגדר בו המחלקות שהוגדרו בו כלהלן: A, E, C, B, D. בפרויקט מומשה פעולה f() (Java) / F() (C#) בשתי מחלקות. קטע הקוד שלפניך תקין.

// לפניך פרויקט שהוגדר בו המחלקות הבאות: A, E, C, B, D. בפרויקט מומשה פעולה f() בשתי מחלקות.
// קטע הקוד שלפניך תקין:
A a1 = new A();
A e1 = new E();
E c1 = new C();
C b1 = new B();
C d1 = new D();

// נתון:
// ההוראה  B d2 = new D();  גורמת לשגיאת הידור (קומפילציה).
// ההוראה  a1.f();  גורמת לשגיאת הידור (קומפילציה).
// ההוראה  ((E)e1).f();  תקינה ומדפיסה "bye-bye".
// ההוראה  ((B)b1).f();  תקינה ומדפיסה "hello".
// ההוראה  ((D)b1).f();  גורמת לשגיאת זמן ריצה.
סעיף א

צייר עץ ירושה של כל המחלקות, וציין באילו שתי מחלקות מומשה פעולה f() (F() ב-C#).

public void f()

סעיף ב1

נתונה המחלקה Z: public class Z { public void g(){} } ב-Java (ב-C#: public class Z { public void G(){} }). הוסף את המחלקה Z לעץ הירושה שציירת בסעיף א, כך שההוראה שלפניך תהיה תקינה (ללא התייחסות לנתונים בסעיף ב): Z x = new A();

סעיף ב2

קטע הקוד שלפניך תקין: A a2 = new A(); Z z1 = new Z(); A a3 = new A(); לכל אחת מן ההוראות i-v שלפניך, ציין אם היא תקינה או אינה תקינה. אם ההוראה אינה תקינה, נמק מדוע. הסעיפים i-v אינם תלויים זה בזה. i. a2=z1; ii. a3=z1; iii. ((A)z1).g(); iv. a2.g(); v. ((A)a3).g(); (ב-C#: g נכתב G בכל מקום)

סעיף ג1

נתונה המחלקה Y: public class Y { public void m(){} } ב-Java (ב-C#: public class Y { public void M(){} }). הוסף את המחלקה Y לעץ הירושה שציירת בסעיף א (ללא התייחסות לנתונים בסעיף ב), כך שההוראה שלפניך תהיה תקינה: C f = new Y();

סעיף ג2

קטע הקוד שלפניך תקין: A a2 = new A(); Y y1 = new Y(); C y2 = new Y(); לכל אחת מן ההוראות i-v שלפניך, ציין אם היא תקינה או אינה תקינה. אם ההוראה אינה תקינה, נמק מדוע. הסעיפים i-v אינם תלויים זה בזה. i. a2=y1; ii. y2=y1; iii. ((A)y1).m(); iv. y2.m(); v. ((A)y2).m(); (ב-C#: m נכתב M בכל מקום)

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

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

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

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