Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

علاقة "is-a"

جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy. الدرس 25 من 56.

علاقة "is-a" هي اختبار بسيط لتحديد متى تكون الوراثة منطقية. إذا كان بإمكانك قول "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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت