שאלה זו שני סעיפים א-ב שאין קשר ביניהם. ענה על שניהם. סעיף א: נתונות חמש מחלקות 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) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(Object g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (2) — בכל אחת מהמחלקות X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(B g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות X, Y, Z יורשות את המחלקה B. תת-סעיף (3) — בכל אחת מהמחלקות B, X, Y, Z הוגדרה הפעולה public void foo() {}, ובמחלקה Run הוגדרה הפעולה public void bar(B g) {g.foo(); }. האם תתקבל שגיאת הידור (קומפילציה)? אם כן — הסבר מדוע.
הנח שהמחלקות 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.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.