לפניכם שלושה סעיפים א–ג, שאין קשר ביניהם. ענו על שלושת הסעיפים.
לפניכם שלושה סעיפים א–ג, שאין קשר ביניהם. ענו על שלושת הסעיפים.
סעיף א - לפניכם המחלקה Father ללא מימוש הפעולות הבונות, והמחלקה Son ללא מימוש הפעולות הבונות ופעולת ToString:
public class Father {
private static int st = 0;
protected int num;
public Father() {...}
public Father (int num) {...}
public override string ToString() { return "st=" + st + ", num=" + num; }
}
public class Son : Father {
private char ch;
public Son (int num, char ch) ...{...}
public Son (int num) ...{...}
public override string ToString() {...}
}
לפניכם קטע קוד והפלט שהתקבל בעקבות הרצת קטע הקוד:
| קוד | פלט |
|---|---|
Father x1 = new Father(); Console.WriteLine(x1); //1 | st=1, num=9 //1 |
Father x2 = new Father(3); Console.WriteLine(x2); //2 | st=1, num=3 //2 |
Father x3 = new Son(5,'A'); Console.WriteLine(x3); //3 | st=2, num=5, ch=A //3 |
Father x4 = new Son(7); Console.WriteLine(x4); //4 | st=2, num=7, ch=Z //4 |
אין להוסיף פעולות נוספות למחלקות. תשובה הכוללת פעולות נוספות במחלקות, לא תזוכה בנקודות.
סעיף ב - ששת תרשימי ההיררכייה 1–6 (החץ מסמן יחס ירושה; X <- Y פירושו: Y יורשת מ-X):
6: A<-C<-D<-B
5: B<-A<-C<-D
4: A<-C<-B<-D
3: D<-{B,C}<-A (D בראש, B ו-C יורשים מ-D, A יורש מ-C)
2: A<-C<-{B,D}
1: C<-B<-{D,A}

לפניכם המחלקה Father ללא מימוש הפעולות הבונות, והמחלקה Son ללא מימוש הפעולות הבונות ופעולות ToString. לפניכם קטע קוד והפלט שהתקבל בעקבות הרצת קטע הקוד. ממשו את הפעולות הבונות במחלקה Father ובמחלקה Son, ואת הפעולה ToString במחלקה Son, בהתאם לעקרונות תכנות מונחה עצמים, כך שיתקבל הפלט הנתון.
נתונות המחלקות A,B,C,D והפעולה Main במחלקה Tester, שרצה באופן תקין.
public class Tester {
public static void Main (string[] args) {
C c1 = new B();
A a1 = new C();
A a2 = new B();
C c2 = new D();
}
}
לפניכם שישה תרשימי היררכייה 1-6 (החץ מסמן יחס ירושה). בנוגע לכל אחד מהם, ציינו אם ייתכן או לא ייתכן שהוא מתאר את יחס ההיררכייה בין המחלקות A,B,C,D. אם ציינתם שלא ייתכן, נמקו מדוע.
בסוף הפעולה main נוספו שורות הקוד שלהלן, שרצות באופן תקין: A a3 = new B(); D d1 = (D)a3; בעקבות זאת, האם תשתנה תשובתכם בתת-סעיף ב(1)? נמקו את תשובתכם.
נתונה המחלקה BBB, היורשת ממחלקה AAA: [public class BBB : AAA { private char ch; public BBB (int num, char ch) : base (num) { this.ch = ch; } public BBB (char ch) {this.ch = ch;} public override int GG (int val) {return base.GG(val) + num;} public int MM () {return AAA.c + 2;} public bool NN () {return this.MM (10);} }]. כתבו במחלקה AAA את תכונות המחלקה (כולל הרשאות הגישה) ואת הכותרות של הפעולות הנדרשות כדי שהמחלקה BBB תהיה תקינה, בהתאם לעקרונות תכנות מונחה עצמים. אין צורך לממש את הפעולות שאת כותרתם הוספתם במחלקה AAA. אין לשנות את הקוד של המחלקה BBB.
public class AAA { ... }
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.