Menu
CoddyTech

علاقة "is-a"

جزء من قسم البرمجة كائنية التوجه في رحلة 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}`);
  }
}
// الرواية هي نوع من الكتب (وراثة صحيحة)
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. يُعدّ 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 عبر الإنترنت