לפניך פרויקט שהוגדרו בו המחלקות A, B, C, D, E. בפרויקט מומשה פעולה f() בשתי מחלקות.
קטע הקוד הבא תקין:
java1A a1 = new A(); 2A e1 = new E(); 3E c1 = new C(); 4C b1 = new B(); 5C d1 = new D();
נתון:
B b2 = new D(); גורמת לשגיאת הידור.a1.f(); גורמת לשגיאת הידור.((E)b1).f(); תקינה ומדפיסה "bye-bye".((B)d1).f(); תקינה ומדפיסה "hello".((D)b1).f(); גורמת לשגיאת זמן ריצה.רשמו את עץ הירושה של כל המחלקות: לכל מחלקה ציינו מי מחלקת־האב שלה (אם קיימת), וציינו באילו שתי מחלקות מומשה הפעולה f().
נתונה המחלקה Z:
java1public class Z { 2 public void g(){} 3}
(1) הוסף את המחלקה Z לעץ הירושה שציירת בסעיף א כך שההוראה Z x = new A(); תהיה תקינה.
(2) קטע הקוד שלפניך תקין:
java1A a2 = new A(); 2Z z1 = new Z(); 3Z a3 = new A();
לכל אחת מן ההוראות i-v, ציין אם היא תקינה או אינה תקינה. נמק.
i. a2 = z1;
ii. a3 = z1;
iii. ((A)z1).g();
iv. a2.g();
v. ((A)a3).g();
נתונה המחלקה Y:
java1public class Y { 2 public void m(){} 3}
(1) הוסף את המחלקה Y לעץ הירושה שציירת בסעיף א כך שההוראה C f = new Y(); תהיה תקינה.
(2) קטע הקוד שלפניך תקין:
java1A a2 = new A(); 2Y y1 = new Y(); 3C y2 = new Y();
עבור כל אחת מן ההוראות i-v, ציין אם היא תקינה או אינה תקינה. נמק.
i. a2 = y1;
ii. y2 = y1;
iii. ((A)y1).m();
iv. y2.m();
v. ((A)y2).m();
לפניך פרויקט שהוגדרו בו המחלקות A, B, C, D, E. בפרויקט מומשה פעולה f() בשתי מחלקות.
קטע הקוד הבא תקין:
java1A a1 = new A(); 2A e1 = new E(); 3E c1 = new C(); 4C b1 = new B(); 5C d1 = new D();
נתון:
B b2 = new D(); גורמת לשגיאת הידור.a1.f(); גורמת לשגיאת הידור.((E)b1).f(); תקינה ומדפיסה "bye-bye".((B)d1).f(); תקינה ומדפיסה "hello".((D)b1).f(); גורמת לשגיאת זמן ריצה.רשמו את עץ הירושה של כל המחלקות: לכל מחלקה ציינו מי מחלקת־האב שלה (אם קיימת), וציינו באילו שתי מחלקות מומשה הפעולה f().
נתונה המחלקה Z:
java1public class Z { 2 public void g(){} 3}
(1) הוסף את המחלקה Z לעץ הירושה שציירת בסעיף א כך שההוראה Z x = new A(); תהיה תקינה.
(2) קטע הקוד שלפניך תקין:
java1A a2 = new A(); 2Z z1 = new Z(); 3Z a3 = new A();
לכל אחת מן ההוראות i-v, ציין אם היא תקינה או אינה תקינה. נמק.
i. a2 = z1;
ii. a3 = z1;
iii. ((A)z1).g();
iv. a2.g();
v. ((A)a3).g();
נתונה המחלקה Y:
java1public class Y { 2 public void m(){} 3}
(1) הוסף את המחלקה Y לעץ הירושה שציירת בסעיף א כך שההוראה C f = new Y(); תהיה תקינה.
(2) קטע הקוד שלפניך תקין:
java1A a2 = new A(); 2Y y1 = new Y(); 3C y2 = new Y();
עבור כל אחת מן ההוראות i-v, ציין אם היא תקינה או אינה תקינה. נמק.
i. a2 = y1;
ii. y2 = y1;
iii. ((A)y1).m();
iv. y2.m();
v. ((A)y2).m();