Menu
Coddy logo textTech

הקשר "הוא-סוג-של"

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

קשר מסוג "הוא-סוג-של" הוא מבחן פשוט לקביעה מתי הורשה מתאימה. אם אפשר לומר "X הוא Y" וזה נשמע נכון, כנראה ש-X צריך לרשת מ-Y.

נכון (השתמשו בירושה):

  • "כלב הוא בעל חיים" → class Dog extends Animal
  • ״מכונית היא כלי רכב״ → class Car extends Vehicle
  • "ספר לימוד הוא ספר" → class Textbook extends Book

שגוי (אל תשתמש בירושה):

  • "נהג הוא מכונית" → לא, נהג משתמש במכונית
  • "גלגל הוא מכונית" → לא, גלגל הוא חלק ממכונית
  • „תלמיד הוא כיתה” → לא, תלמיד נמצא בכיתה

לדוגמה, נבחן שני אובייקטים:

// מחלקת בסיס - מה שכולם בעצם
class Book {
  constructor(title, author, pages) {
    this.title = title;
    this.author = author;
    this.pages = pages;
  }
  
  read() {
    console.log(`Reading ${this.title} by ${this.author}`);
  }
}
// Novel הוא סוג של Book (ירושה נכונה)
class Novel extends Book {
  constructor(title, author, pages, genre) {
    super(title, author, pages);
    this.genre = genre;
  }
}
// שימוש במחלקות
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read();    // "Reading 1984 by George Orwell" - עובר בירושה מ-Book
challenge icon

אתגר

ניתנו לך מחלקה ElectronicDevice ומחלקה Smartphone. סמארטפון הוא סוג של ElectronicDevice עם תכונות נוספות. המשימה שלך היא ליצור אובייקט `myPhone` עם המותג "Samsung" והדגם “Galaxy S23”.

נסו בעצמכם

import { ElectronicDevice } from './electronicDevice.js';
import { Smartphone } from './smartphone.js';


// TODO: צרו אובייקט `myPhone` עם מותג "Samsung" ודגם “Galaxy S23”.


// קוד בדיקה - אין לשנות
console.log(myPhone.turnOn());  // אמור להדפיס "Samsung Galaxy S23 is now ON"
quiz iconבחנו את עצמכם

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

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

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