בפרויקט מסוים הוגדרו שלושה ממשקים ושתי מחלקות:
בפרויקט מסוים הוגדרו שלושה ממשקים ושתי מחלקות:
public interface Dancer{
void lonelyDance();
void coupleDance(Dancer d);
}
public interface Singer { void sing(); }
public interface Musician { void play(); }
public class Actor implements Dancer, Singer, Musician
{
private String name;
private int age;
…
}
public class Driver
{
public static void main(String[] args)
{
Actor actor1 = new Actor("Bob", 25);
Actor actor2 = new Actor("Alice");
( *****)
}
}
השלימו את המחלקה Actor: תכתבו כותרות של הפעולות החסרות בה (כותרות בלבד — אין דרישה למימוש).
בכל אחד מסעיפים הבאים השורה (*****) תוחלף בשורת קוד משורות הקוד 1-6. כתבו, עבור כל אחד מהסעיפים, אם הקוד תקין או לא. אם הקוד אינו תקין — יש להסביר למה הוא אינו תקין ולציין את סוג השגיאה (קומפילציה או זמן ריצה). שימו לב שאין קשר בין סעיפים: (1) Dancer dancer1 = actor1; dancer1.coupleDance(actor2); (2) Singer singer2 = new Singer(); singer2.sing(); (3) Singer singer3 = new Actor("Clark",30); Dancer dancer3 = (Actor)singer3; (4) Singer actor4 = new Actor("Danny"); actor4.play(); (5) Dancer actor5 = new Actor("Eddie"); Singer singer5 = (Singer) actor5; singer5.sing(); (6) Musician musician6 = new Actor("Freddie", 45); ((Actor) musician6).lonelyDance(); ((Singer) musician6).sing();
(אין קשר לסעיפים א' ו-ב') נתונה הפעולה main הבאה: public static void main(String[] args) { C c = new A(); B b1 = (B)(new A()); B b2 = new D(); A a = new D(); } עבור כל אחת מן האפשרויות 1-6, קבעו אם יחס ההורשה בין המחלקות מתאים לקוד של הפעולה main הנתונה (כלומר, שכל ארבע השורות מתקמפלות ורצות ללא שגיאה). הסבירו את תשובתכם.
- C יורשת מ-A, B יורשת מ-A, D יורשת מ-A.
- A יורשת מ-C, B יורשת מ-A, D יורשת מ-A.
- C יורשת מ-A, B יורשת מ-A, D יורשת מ-B.
- A יורשת מ-C, C יורשת מ-B, D יורשת מ-A.
- A יורשת מ-C, B יורשת מ-A, D יורשת מ-B.
- A יורשת מ-C, B יורשת מ-C, D יורשת מ-C.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.