נתונות 2 המחלקות הבאות:
נתונות 2 המחלקות הבאות:
public class AA{
public AA(){
Console.WriteLine("AA constructor");
}
public virtual void One() {
Console.WriteLine("One in AA");
}
public virtual void Two() {
One();
}
}
public class BB : AA{
public BB(){
Console.WriteLine("BB constructor");
}
public override void One(){
Console.WriteLine("One in BB");
}
public override void Two() {
Console.WriteLine("Two in BB");
}
public void Three() {
base.Two();
}
}
סעיף א
נתון קטע הקוד הבא (מספרי שורות אינם חלק מהקוד):
(1) AA a = new AA();
(2) BB b = new BB();
(3) AA ab = new BB();
(4) a.One();
(5) ab.One();
(6) b.One();
(7) a.Two();
(8) ab.Two();
(9) b.Two();
(10) ((BB)(ab)).Three();
(11) b.Three();
- עקבו אחרי ביצוע קטע הקוד ורשמו מה יהיה הפלט.
- האם אפשר להוסיף לקטע הקוד את 2 הפקודות הבאות? הסבירו את תשובתכם:
a.Three();
((BB)a).Three();
סעיף ב
כתבו פעולה המקבלת מערך הפניות לעצמים מסוג Object. הפעולה תדפיס כמה עצמים הם מסוג BB, כמה עצמים הם מסוג AA ולא סוג BB, וכמה עצמים הם לא מסוג AA.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.