המשימה
ריבוע הוא מלבן שהאורך והרוחב שלו שווים. אפשר לנצל את זה כדי לא לכתוב את חישוב השטח פעמיים. נתונה המחלקה Rectangle עם אורך, רוחב ופעולת area. בנה מחלקה Square שיורשת ממנה: • הבנאי מקבל **מספר אחד** — אורך הצלע. • הוא מעביר אותו לבנאי של האב פעמיים, כאורך וכרוחב. • זהו. את area אין צורך לכתוב בכלל — היא נורשת ועובדת. בנוסף, דרוס את describe כך שיחזיר Square 4 עבור ריבוע שצלעו 4. דוגמאות: Rectangle של 3 על 5 → area מחזיר 15, describe מחזיר Rectangle 3x5 Square של 4 → area מחזיר 16, describe מחזיר Square 4 הנחיות: • הבנאי של Square קצר במיוחד — שורה אחת. אם כתבת בו יותר מזה, כנראה שכפלת משהו שהאב כבר עושה. • אל תכתוב area מחדש. אם כתבת, מחק — זו בדיוק הנקודה של התרגיל. • getSide אינו קיים באב. חשוב איך Square מגיע לערך הצלע כדי להחזיר אותו ב-describe, כשהתכונות של האב פרטיות.
קוד הפתיחה
class Rectangle {
private int width;
private int height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public int getWidth() { return this.width; }
public int getHeight() { return this.height; }
public int area() {
return this.width * this.height;
}
public String describe() {
return "Rectangle " + this.width + "x" + this.height;
}
}
class Square extends Rectangle {
public Square(int side) {
// העבר את הצלע פעמיים לבנאי של האב, ומחק את השורה הזו
super(0, 0);
}
@Override
public String describe() {
// החזר את המילה Square, רווח, ואז הצלע
return "";
}
}
public class Main {
public static void main(String[] args) {
Rectangle r = new Rectangle(3, 5);
System.out.println(r.area()); // 15
System.out.println(r.describe()); // Rectangle 3x5
Square s = new Square(4);
System.out.println(s.area()); // 16
System.out.println(s.describe()); // Square 4
Square one = new Square(1);
System.out.println(one.area()); // 1
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.