נתונות שתי המחלקות Car, Motorcycle. למחלקות יש תכונה אחת – מהירות מרבית.

public class Car {
    private int speed;
    public Car (int s) { speed = s; }
    public int GetSpeed () { return speed; }
    public bool Equals(Car other) {
        return (other!=null) && (speed == other.speed);
    }
}
public class Motorcycle {
    private int speed;
    public Motorcycle (int s) { speed = s; }
    public int GetSpeed () { return speed; }
    public bool Equals (Object other) {
        return ((other != null) &&
                (other is Motorcycle) &&
                (speed == ((Motorcycle)other).speed));
    }
}
(א)כתבו פעולה המקבלת מערך הפניות לעצמים מסוג Object. הפעולה תחזיר מספר אופנועים (עצמים מסוג Motorcycle) שמהירותם המרבית היא בין 180 ל-250 קמ"ש.

כותרת הפעולה:
```csharp
public static int CountCars(Object[] vehicles)
```
(ב)נתונה המחלקה Drive:

```csharp
public class Drive {
public static void Main (string[] args) {
Car c1 = new Car (180);
Object c2 = new Car (180);
Motorcycle m1 = new Motorcycle (180);
Object m2 = new Motorcycle (180);
// ***
}
}
```

בהתייחס לכל אחת מהשורות שלפניכם, כתבו מה יקרה בעקבות הוספתה לשיטה Main שלעיל, לאחר ההצהרות על האובייקטים (במקום שמסומן בכוכביות ***).
אם הוספת פקודת קוד גורמת לשגיאה יש להסביר מהי השגיאה (שגיאת קומפילציה או שגיאת זמן ריצה).

(1) `Console.WriteLine(c1.speed);`
(2) `Console.WriteLine(((Motorcycle)c2).GetSpeed());`
(3) `Console.WriteLine(c1.Equals(c2));`
(4) `Console.WriteLine(c2.Equals(c1));`
(5) `Console.WriteLine(m1.Equals(m2));`
(6) `Console.WriteLine(m2.Equals(m1));`
(7) `Console.WriteLine(c1.Equals((Motorcycle)m2));`
(8) `Console.WriteLine(c1.Equals((Car)c2));`
(9) `Console.WriteLine(m1.Equals((Car)c2));`
(10) `Console.WriteLine(m1.Equals((Motorcycle)c2));`

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה בטיחות מוסמך עונה כאן — תקבלו מענה מקצועי

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←