אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2024 · קיץ מועד א · שאלה 4כל שאלות המבחן ←
תכנות מונחה עצמיםירושה

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

Vehicle
├── Motorcycle
├── Bus
└── Car
      ├── Truck
      └── RacingCar
סעיף א

לפניכם קטע קוד מתוך הפעולה הראשית:

Vehicle v1 = new Vehicle();
Vehicle v2 = new Car();
Vehicle v3 = new Truck();
Car c = new Truck();

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

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 אינו מוגדר בקטע (נראה כשגיאת דפוס במקור; מופיע זהה גם בגרסת ה-Java). הועתק verbatim.

סעיף ב

רוצים לכתוב פעולה אשר מקבלת מערך של כלי תחבורה (מערך הפניות לעצמים מטיפוס Vehicle) ומחזירה את המהירות הממוצעת של כל האופנועים (Motorcycle) ומכוניות המירוץ (RacingCar). באיזו מחלקה או מחלקות יש להוסיף את הפעולה double Speed() המחזירה את המהירות? הסבירו את תשובתכם, אין צורך לממש את הפעולה Speed().

סעיף ג

כתבו פעולה המקבלת מערך כלי תחבורה ומחזירה את האופנוע שמהירותו היא הגבוהה ביותר. אם במערך אין אף אופנוע, הפעולה תחזיר null.

כותרת הפעולה:

public static Motorcycle MaxSpeed(Vehicle[] arr)
שאלות ותגובות על השאלה

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

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

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