נתון עץ הירושה הבא המתאר סוגי כלי תחבורה שונים:
נתון עץ הירושה הבא המתאר סוגי כלי תחבורה שונים:
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אינו מוגדר בקטע (נראה כשגיאת דפוס במקור; מופיע זהה גם בגרסת ה-C#). הועתק verbatim.
רוצים לכתוב פעולה אשר מקבלת מערך של כלי תחבורה (מערך הפניות לעצמים מטיפוס Vehicle) ומחזירה את המהירות הממוצעת של כל האופנועים (Motorcycle) ומכוניות המירוץ (RacingCar). באיזו מחלקה או מחלקות יש להוסיף את הפעולה double speed() המחזירה את המהירות?
הסבירו את תשובתכם, אין צורך לממש את הפעולה speed().
כתבו פעולה המקבלת מערך כלי תחבורה ומחזירה את האופנוע שמהירותו היא הגבוהה ביותר. אם במערך אין אף אופנוע, הפעולה תחזיר null.
כותרת הפעולה:
public static Motorcycle maxSpeed(Vehicle[] arr)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.