בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2017 קיץ מועד א

פולימורפיזם והמרות טיפוסים

שאלה קודמתשאלה הבאה
שאלה 14מבני נתונים2017 קיץ מועד א

פולימורפיזם והמרות טיפוסים

שאלה 14 (Java) ושאלה 16 (C#). נתונות המחלקה A והמחלקה B היורשת מ-A.

משימות

אמשימה אtext

ההוראה A a1 = new B(); עוברת הידור ורצה בצורה תקינה. בעבור כל אחד מן המשפטים i-iii שלפניך, קבע אם המשפט נכון או אינו נכון. הסבר. i. אי־אפשר לכתוב את ההוראה Object obj = a1;, מכיוון שדרושה המרה מפורשת (casting). ii. אי־אפשר לכתוב את ההוראה A a2 = a1;, מכיוון שדרושה המרה מפורשת (casting). iii. אי־אפשר לכתוב את ההוראה B b1 = a1;, מכיוון שדרושה המרה מפורשת (casting).

במשימה בtext

במחלקה Program נתונה הפעולה main / Main: Java:

java
1public static void main(String[] args) {
2    C c = new A();
3    B b1 = (B) (new A());
4    B b2 = new D();
5    A a = new D();
6}

C#:

csharp
1public static void Main(string[] args) {
2    C c = new A();
3    B b1 = (B) (new A());
4    B b2 = new D();
5    A a = new D();
6}

קבע איזו מן האפשרויות i-v מתארת קשר אפשרי בין המחלקות, לפי הפעולה הנתונה.

גמשימה גtext

נתונות הגדרות של המחלקות City ו-School. כדי שלא תהיה שגיאת הידור, איזו השלמה מתאימה לשורה המסומנת (1)? בחר מבין האפשרויות (public/private/protected). Java:

java
1public class City {
2    (1) int students;
3}
4public class School extends City {
5    void poll() { System.out.println("There are "+ students + " in the school "); }
6}

C#:

csharp
1public class City {
2    (1) int students;
3}
4public class School: City {
5    void Poll() { Console.WriteLine("There are "+ students + " in the school "); }
6}
דמשימה דtext

לפניך הגדרה של המחלקה Quest: Java:

java
1public class Quest {
2    private int num;
3    private static int count = 0;
4    public Quest() {
5        count++;
6        num = count;
7    }
8    public void printNow() {
9        System.out.println(num+" "+count);
10    }
11}

C#:

csharp
1public class Quest {
2    private int num;
3    private static int count = 0;
4    public Quest() {
5        count++;
6        num = count;
7    }
8    public void PrintNow() {
9        Console.WriteLine(num+" "+count);
10    }
11}

קבע כמה עצמים (אובייקטים) יש לייצר מן המחלקה Quest, ועל איזה מהם יש להפעיל את הפעולה printNow / PrintNow, כדי שהפלט יהיה 3 5.

שאלה 14מבני נתונים2017 קיץ מועד א

פולימורפיזם והמרות טיפוסים

שאלה 14 (Java) ושאלה 16 (C#). נתונות המחלקה A והמחלקה B היורשת מ-A.

משימות

אמשימה אtext

ההוראה A a1 = new B(); עוברת הידור ורצה בצורה תקינה. בעבור כל אחד מן המשפטים i-iii שלפניך, קבע אם המשפט נכון או אינו נכון. הסבר. i. אי־אפשר לכתוב את ההוראה Object obj = a1;, מכיוון שדרושה המרה מפורשת (casting). ii. אי־אפשר לכתוב את ההוראה A a2 = a1;, מכיוון שדרושה המרה מפורשת (casting). iii. אי־אפשר לכתוב את ההוראה B b1 = a1;, מכיוון שדרושה המרה מפורשת (casting).

במשימה בtext

במחלקה Program נתונה הפעולה main / Main: Java:

java
1public static void main(String[] args) {
2    C c = new A();
3    B b1 = (B) (new A());
4    B b2 = new D();
5    A a = new D();
6}

C#:

csharp
1public static void Main(string[] args) {
2    C c = new A();
3    B b1 = (B) (new A());
4    B b2 = new D();
5    A a = new D();
6}

קבע איזו מן האפשרויות i-v מתארת קשר אפשרי בין המחלקות, לפי הפעולה הנתונה.

גמשימה גtext

נתונות הגדרות של המחלקות City ו-School. כדי שלא תהיה שגיאת הידור, איזו השלמה מתאימה לשורה המסומנת (1)? בחר מבין האפשרויות (public/private/protected). Java:

java
1public class City {
2    (1) int students;
3}
4public class School extends City {
5    void poll() { System.out.println("There are "+ students + " in the school "); }
6}

C#:

csharp
1public class City {
2    (1) int students;
3}
4public class School: City {
5    void Poll() { Console.WriteLine("There are "+ students + " in the school "); }
6}
דמשימה דtext

לפניך הגדרה של המחלקה Quest: Java:

java
1public class Quest {
2    private int num;
3    private static int count = 0;
4    public Quest() {
5        count++;
6        num = count;
7    }
8    public void printNow() {
9        System.out.println(num+" "+count);
10    }
11}

C#:

csharp
1public class Quest {
2    private int num;
3    private static int count = 0;
4    public Quest() {
5        count++;
6        num = count;
7    }
8    public void PrintNow() {
9        Console.WriteLine(num+" "+count);
10    }
11}

קבע כמה עצמים (אובייקטים) יש לייצר מן המחלקה Quest, ועל איזה מהם יש להפעיל את הפעולה printNow / PrintNow, כדי שהפלט יהיה 3 5.