csharp
class Basis { protected int num1; public Basis() { } public Basis(int n) { this.num1 = n; } public virtual void Print() { Console.WriteLine(this.num1); } } class SingleOne : Basis { protected int num2; public SingleOne(int n1, int n2) : base(n1) { this.num2 = n2; } public override void Print() { base.Print(); Console.WriteLine(this.num2); } } class MultiOne : Basis { private int count = 0; private Basis[] arr; public MultiOne() { this.arr = new Basis[5]; } public override void Print() { for (int i = 0; i < count; i++) arr[i].Print(); } public void Add(Basis b) { if (count < arr.Length) { arr[count] = b; count++; } } }
ציירו תרשים UML שמייצג את הקשרים בין המחלקות Basis, SingleOne, MultiOne. יש לסמן ירושה באמצעות החץ והכלה באמצעות היהלום.
נתונה המחלקה Test ובה הפעולה הראשית. עקבו בעזרת טבלת מעקב אחר הפעולה Main במחלקה Test, ורשמו את הפלט. על הטבלה לכלול את ערכי כל המשתנים, ובעבור כל עצם — את ערכי התכונות שלו.
class Test {
public static void Main(string[] args) {
MultiOne container = new MultiOne();
SingleOne s1 = new SingleOne(11, 35);
container.Add(s1);
s1 = new SingleOne(47, 22);
container.Add(s1);
s1 = new SingleOne(8, 17);
container.Add(s1);
MultiOne subContainer = new MultiOne();
s1 = new SingleOne(53, 40);
subContainer.Add(s1);
s1 = new SingleOne(21, 13);
subContainer.Add(s1);
s1 = new SingleOne(39, 62);
subContainer.Add(s1);
container.Add(subContainer);
container.Print();
}
}
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.