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

שאלה זו שני סעיפים א-ב שאין קשר ביניהם. ענה על שניהם. סעיף א: נתונות חמש מחלקות B, X, Y, Z, Run. התת-סעיפים (1)-(4) שלפניך מתייחסים למחלקות אלה. התת-סעיפים אינם קשורים זה לזה — ענה על כולם. בכל תת-סעיף: קבע אם מתקבלת שגיאת הידור (קומפילציה); אם כן — הסבר מדוע.

// נתון (אין לשנות) — הקשר לסעיף ב:
interface IPerform {
    void act();
    int train();
}
public class Singer extends Artist implements IPerform {
    private int hits;
    public Singer(String name, double sal) { super(sal, name); this.hits = 5; }
    public Singer(double sal, int hits) { super(sal, "Singer Name"); this.hits = hits; }
    public Singer(int hits) { super(6532.6, "Some", "One"); this.hits = hits; }
    public double value() {return this.hits * this.price();}
    public int getNum()    {return Artist.num;}
    public double calc(double d)    {return d * super.calc(10.2);}
    public void print() {super.print(); System.out.println("Singer");}
    public void act()      {System.out.println("I am singing");}
}
סעיף א1

תת-סעיף (1) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(Object g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.

סעיף א2

הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (2) — בכל אחת מהמחלקות X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(B g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.

סעיף א3

הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (3) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(B g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.

סעיף א4

הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (4) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(Object g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.

סעיף ב

אין קשר לסעיף א. לפניך המחלקה Singer שיורשת את המחלקה Artist והממשק IPerform שהמחלקה Singer מממשת. כתוב ב-Java את כותרת המחלקה Artist, את התכונות ואת כותרות הפעולות המתחייבות מהמחלקה Singer והממשק IPerform הנתונים. אין צורך לממש את הפעולות של המחלקה Artist. אין לשנות את המחלקה Singer ואת הממשק IPerform.

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

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

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

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