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

חומרי לימוד

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

ירושה ופולימורפיזם במחלקות A ו-B

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

ירושה ופולימורפיזם במחלקות A ו-B

לפניך המחלקות A ו-B. סעיפים א-ג מתייחסים למחלקות אלה.

1public class A {
2    private int x;
3    public A() { this.x = 0; }
4    public A(int x) { this.x = x; }
5    public int getX() { return x; }
6    public void doubleX() { this.x = 2 * getX(); }
7    public void tripleX() { this.x = 3 * getX(); }
8    public void sub() { this.x = x - 1; }
9    public void calc() { sub(); }
10    public String toString() { return "xA=" + this.x; }
11}
12
13public class B extends A {
14    private int x;
15    public B() { super(); this.x = 1; }
16    public B(int x) { super(x); this.x = -x; }
17    public B(int xA, int xB) { super(xA); this.x = xB; }
18    public int getX() { return x; }
19    public int baseX() { return super.getX(); }
20    public void tenTimesX() { this.x = 10 * getX(); }
21    public void tripleX() { this.x = 3 * getX(); }
22    public void sub() { this.x = x - 2; }
23    public String toString() { return super.toString() + " xB=" + this.x + ";"; }
24}

משימות

אמשימה אcode

לפניך סדרת הוראות שהפלט בעבורה צריך להיות: xA=1 xB=20; xA=1 xB=20; xA=1 xB=20; xA=1 xB=20; בסדרת ההוראות נפלה שגיאת הידור (קומפילציה). תקן את השגיאה כדי שיתקבל הפלט הנכון.

Java:

java
1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5System.out.println(a1 + " " + obj + " " + a2 + " " + b1);

C#:

csharp
1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5Console.WriteLine(a1 + " " + obj + " " + a2 + " " + b1);
במשימה בtable

לפניך סדרת הוראות. הצג את העצמים הנוצרים, ולכל עצם הצג את ערכי התכונות שלו.

גמשימה גtext

לפניך קטעים i-vi. לכל קטע קבע אם הוא תקין או שגוי (קומפילציה/זמן ריצה) וכתוב פלט אם תקין.

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

ירושה ופולימורפיזם במחלקות A ו-B

לפניך המחלקות A ו-B. סעיפים א-ג מתייחסים למחלקות אלה.

1public class A {
2    private int x;
3    public A() { this.x = 0; }
4    public A(int x) { this.x = x; }
5    public int getX() { return x; }
6    public void doubleX() { this.x = 2 * getX(); }
7    public void tripleX() { this.x = 3 * getX(); }
8    public void sub() { this.x = x - 1; }
9    public void calc() { sub(); }
10    public String toString() { return "xA=" + this.x; }
11}
12
13public class B extends A {
14    private int x;
15    public B() { super(); this.x = 1; }
16    public B(int x) { super(x); this.x = -x; }
17    public B(int xA, int xB) { super(xA); this.x = xB; }
18    public int getX() { return x; }
19    public int baseX() { return super.getX(); }
20    public void tenTimesX() { this.x = 10 * getX(); }
21    public void tripleX() { this.x = 3 * getX(); }
22    public void sub() { this.x = x - 2; }
23    public String toString() { return super.toString() + " xB=" + this.x + ";"; }
24}

משימות

אמשימה אcode

לפניך סדרת הוראות שהפלט בעבורה צריך להיות: xA=1 xB=20; xA=1 xB=20; xA=1 xB=20; xA=1 xB=20; בסדרת ההוראות נפלה שגיאת הידור (קומפילציה). תקן את השגיאה כדי שיתקבל הפלט הנכון.

Java:

java
1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5System.out.println(a1 + " " + obj + " " + a2 + " " + b1);

C#:

csharp
1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5Console.WriteLine(a1 + " " + obj + " " + a2 + " " + b1);
במשימה בtable

לפניך סדרת הוראות. הצג את העצמים הנוצרים, ולכל עצם הצג את ערכי התכונות שלו.

גמשימה גtext

לפניך קטעים i-vi. לכל קטע קבע אם הוא תקין או שגוי (קומפילציה/זמן ריצה) וכתוב פלט אם תקין.