Menu
Coddy logo textTech

דריסת מתודות שעברו בירושה

חלק מהיחידה תכנות מונחה עצמים במסלול ה-JavaScript של Coddy. שיעור 36 מתוך 56.

דריסת מתודה מתרחשת כאשר מחלקת בת מספקת מימוש משלה למתודה שהיא ירשה ממחלקת אב. הגרסה של מחלקת הבת "דורסה" (מחליפה) את הגרסה של מחלקת האב.

דוגמה פשוטה:

צרו מחלקת אב עם מתודה:

class Vehicle {
  start() {
    return "Vehicle starting...";
  }
}

צרו מחלקת בת שמרחיבה את מחלקת האב:

class Car extends Vehicle {
  // זה דורס את המתודה start() של Vehicle
  start() {
    return "Car engine roaring to life!";
  }
}

השתמשו במחלקות:

const vehicle = new Vehicle();
const car = new Car();

console.log(vehicle.start());      // "Vehicle starting..." (מקורי)
console.log(car.start());          // "Car engine roaring to life!" (נדרס)

כללים מרכזיים לדריסת הגדרות:

  1. אותו שם מתודה כמו במחלקת האב
  1. פרמטרים זהים או תואמים
  1. הגרסה של הילד נקראת באובייקטים של ילדים
  1. אין צורך במילות מפתח מיוחדות - פשוט הגדירו את המתודה
challenge icon

אתגר

ניתנות לך מחלקת אב Shape ומחלקת בת Circle. למחלקת האב יש מתודה calculateArea() שמחזירה 0.

המשימה שלך היא לדרוס את המתודה calculateArea() במחלקה Circle כדי לחשב את השטח האמיתי של מעגל.

הנוסחה לחישוב שטח מעגל היא: π × radius²
ב-JavaScript: Math.PI * this.radius * this.radius

נסו בעצמכם

import { Shape } from './shapes.js';
import { Circle } from './shapes.js';

// בדקו את המימוש שלכם
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר JavaScript אונליין