שתי מחלקות One ו-Two (Two extends One), כל אחת עם שני בנאים מועמסים ופעולות sum/setNum שנדרסות ב-Two. יש לעקוב אחרי הפעולה הראשית ולרשום את כל הפלט, כולל שורות ההדפסה שבתוך הבנאים עצמם.
שתי מחלקות One ו-Two (Two extends One), כל אחת עם שני בנאים מועמסים ופעולות sum/setNum שנדרסות ב-Two. יש לעקוב אחרי הפעולה הראשית ולרשום את כל הפלט, כולל שורות ההדפסה שבתוך הבנאים עצמם.
public class One {
private int num1=0;
private int num2=0;
protected static int count =0;
public One(int num) {
this.num1 = num;
this.num2 = num;
count++;
Console.WriteLine ("One ctor1");
}
public One(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
count++;
Console.WriteLine ("One ctor2");
}
public virtual int Sum() {return this.num1+this.num2;}
public virtual void SetNum(int num) { this.num2 = num;}
public static int GetCount() { return count; }
}// end of class One
public class Two :One {
private int num3 = 0;
public Two(int num):base(num) {
this.num3 = num;
Console.WriteLine ("Two ctor1");
}
public Two(int num1, int num2, int num3): base(num1, num2) {
this.num3 = num3;
Console.WriteLine ("Two ctor2");
}
public override int Sum() {return base.Sum()+this.num3; }
public override void SetNum(int num) {this.num3 = num; }
public static new int GetCount() {return count; }
}// end of class Two
public class Run {
public static void Main (string [] args) {
One f1 = new One(10);
One f2 = new One (10, 20);
Two s1 = new Two(1);
One f3 = new Two(2);
(1) Console.WriteLine ("count= " + One.GetCount());
f2 = s1;
(2) Console.WriteLine ("sum= " + f2.Sum());
s1.SetNum(2);
(3) Console.WriteLine ("sum= " + s1.Sum());
(4) Console.WriteLine ("sum= " + f2.Sum());
f2.SetNum(4);
(5) Console.WriteLine ("sum= " + f2.Sum());
f1.SetNum(4);
(6) Console.WriteLine ("sum= " + f1.Sum());
(7) Console.WriteLine ("count= " + Two.GetCount());
}
}
סעיף א
מה הפלט המתקבל לאחר הפעלת השיטה main שבמחלקה Run? כתבו את מספר השורה ואז את הפלט המתקבל משורה זו. אם יש שגיאת קומפילציה, כתבו אותה.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.