נתון עץ הירושה הבא המתאר סוגי כלי תחבורה שונים:

Vehicle
├── Motorcycle
├── Car
│     └── RacingCar
└── Bus
      └── Truck
(א)לפניכם קטע קוד מתוך הפעולה הראשית:
```java
Vehicle v1 = new Vehicle();
Vehicle v2 = new Car();
Vehicle v3 = new Truck();
Car c = new Truck();
```

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

```java
1. Car c1 = new Vehicle();
2. Car c2 = v1;
3. Car c3 = (Car) v2;
4. Car c4 = (Car) v3;
5. Car c5 = (Car) v1;
6.
Motorcycle m = new Motorcycle();
Vehicle v6 = m;
Car c6 = (Car) s6;
7. Vehicle v7 = (Car)(new Truck());
8. Car c8 = (Vehicle)(new Truck());
```

> ⚠️ סעיף 6 מדפיס `Car c6 = (Car) s6;` — המשתנה `s6` אינו מוגדר בקטע (נראה כשגיאת דפוס במקור; מופיע זהה גם בגרסת ה-C#). הועתק verbatim.
(ב)רוצים לכתוב פעולה אשר מקבלת מערך של כלי תחבורה (מערך הפניות לעצמים מטיפוס Vehicle) ומחזירה את המהירות הממוצעת של כל האופנועים (Motorcycle) ומכוניות המירוץ (RacingCar). באיזו מחלקה או מחלקות יש להוסיף את הפעולה `double speed()` המחזירה את המהירות?
הסבירו את תשובתכם, אין צורך לממש את הפעולה `speed()`.
(ג)כתבו פעולה המקבלת מערך כלי תחבורה ומחזירה את האופנוע שמהירותו היא הגבוהה ביותר. אם במערך אין אף אופנוע, הפעולה תחזיר null.

כותרת הפעולה:
```java
public static Motorcycle maxSpeed(Vehicle[] arr)
```

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

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

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

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

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

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

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