בשאלה זו שלושה סעיפים. אין קשר בין הסעיפים.
בשאלה זו שלושה סעיפים. אין קשר בין הסעיפים.
נתונה פעולה ראשית במחלקה Test. (1) שרטטו את עץ הירושה עבור שתי אפשרויות היררכיות בין המחלקות כך שהפעולה הראשית תהיה תקינה והתוכנית תרוץ ללא שגיאות. (2) רוצים להוסיף בסוף התוכנית את שורת הקוד: Q q1 = (Q) p1; האם התוכנית הראשית תהיה תקינה עבור שתי האפשרויות שציינתם? אם לא – מהו סוג השגיאה שתתרחש?
codeBlock:
public class Test {
public static void Main(string[] args){
S s1 = new R();
P p1 = (P)(new R());
S s2 = new P();
P p2 = new Q();
// (*****)
}
}
appendedLineHebrew: Q q1 = (Q) p1;
לפניכם המחלקות First, Second. במחלקות Program-ו First, Second חסר מימוש בנאים ופעולות ToString. השלימו את הפעולות במחלקות First-ו Second כך שאחרי הרצת הפעולה הראשית של המחלקה Program יתקבל הפלט הנתון.
givenStubs:
public class First {
private static int c = 0;
protected int num;
public First(int num){...}
public override string
ToString(){...}
} // stub — body to complete
givenStubsSecond:
public class Second : First{
private char ch;
public Second(int num, char ch):
base(num){...}
public override string
ToString(){...}
} // stub — body to complete
programAndExpectedOutput:
public class Program{
public static void Main(string[] args) {
First f1 = new First(10);
Console.WriteLine("f1 is "+f1);
First f2 = new Second(3,'A');
Console.WriteLine("f2 is "+f2);
First f3 = new Second(4,'Z');
Console.WriteLine("f3 is "+f3);
First f4 = new First(7);
Console.WriteLine("f4 is "+f4);
}
}
expectedOutput: [f1 is 1-10, f2 is 2-6-A, f3 is 3-12-Z, f4 is 4-28]
לפניכם קוד המחלקה Two. המחלקה יורשת מהמחלקה One. כתבו במחלקה One את התכונות והפעולות הנדרשות. יש לציין הרשאת גישה (public, protected, private) לכל תכונה ולכל פעולה. אין צורך לממש את הפעולות. אין לשנות את הקוד של המחלקה Two.
codeBlock:
public class Two : One
{
private int z;
public Two()
{
this.z = 11;
}
public Two(string s1, int z): base(s1)
{
this.z = z;
}
public override double P1(int a)
{
return a * base.P1(a);
}
public int P2()
{
return One.w + this.M();
}
public void Print()
{
One.D();
Console.WriteLine(s+" SON");
}
}
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.