الوراثة
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 24 من 56.
تعد الوراثة في JavaScript OOP وسيلة تتيح لفئة (class) واحدة الوصول إلى جميع الخصائص والأساليب من فئة أخرى.
لنلقِ نظرة على مثال. أنشئ فئة أب (parent class):
class Vehicle {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
drive() {
console.log("Driving!");
}
}الآن قم بإنشاء فئة فرعية (child class) ترث من Vehicle:
// Car ترث من Vehicle
class Car extends Vehicle {
honk() {
console.log("Beep beep!");
}
}قم بإنشاء مثيل من الفئة الفرعية:
const myCar = new Car("Toyota", "Camry");الوصول إلى الخصائص والأساليب:
console.log(myCar.brand); // "Toyota" - موروثة من Vehicle
console.log(myCar.model); // "Camry" - موروثة من Vehicle
// يمكن لـ Car الوصول إلى أساليب Vehicle
myCar.drive(); // "Driving!" - موروثة من Vehicle
// تمتلك Car أيضاً أساليبها الخاصة
myCar.honk(); // "Beep beep!" - خاصة بـ Carالتحدي
لقد تم إعطاؤك فئة Animal وفئة Dog التي ترث منها. مهمتك هي إنشاء كائن myDog بالاسم "Buddy" والعمر 3.
جرّب بنفسك
import { Dog } from './animal.js';
// مهمة: قم بإنشاء كائن myDog بالاسم "Buddy" والعمر 3.
// كود الاختبار - لا تقم بالتعديل
console.log(myDog.name); // يجب أن تكون النتيجة "Buddy"
console.log(myDog.age); // يجب أن تكون النتيجة 3يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circleإعادة التعريف ودالة المساحةعداد الأشكال Static