Skip to content

الوراثة

الوراثة تتيح لك إنشاء صنف جديد يرث خصائص ودوال صنف موجود. استخدم الكلمة المفتاحية يرث لتحديد الصنف الأب.

التركيب الأساسي

sad
صنف حيوان
  باني(اسم)
    هذا.اسم = اسم
  نهاية
  دالة تحدث()
    اطبع_سطر(هذا.اسم + " يتحدث")
  نهاية
نهاية

صنف قطة يرث حيوان
  باني(اسم)
    الأساس(اسم)   # استدعاء باني الأب
  نهاية

  دالة تحدث()
    اطبع_سطر(هذا.اسم + ": مياو!")
  نهاية
نهاية

متغير ق = جديد قطة("كيتي")
ق.تحدث()   # كيتي: مياو!

استدعاء الباني الأب (الأساس)

عند إنشاء صنف ابن، يجب استدعاء الأساس() في الباني لتمرير المعاملات للصنف الأب:

sad
صنف مركبة
  باني(نوع، سرعة)
    هذا.نوع = نوع
    هذا.سرعة = سرعة
  نهاية
نهاية

صنف سيارة يرث مركبة
  باني(موديل، سرعة، عدد_الأبواب)
    الأساس("سيارة"، سرعة)
    هذا.موديل = موديل
    هذا.عدد_الأبواب = عدد_الأبواب
  نهاية

  دالة وصف()
    ارجع هذا.موديل + " - " + هذا.عدد_الأبواب + " أبواب"
  نهاية
نهاية

متغير س = جديد سيارة("كامري"، 180، 4)
اطبع_سطر(س.وصف())   # كامري - 4 أبواب

تجاوز الدوال (Override)

الصنف الابن يمكنه إعادة تعريف دوال الأب. الدالة الجديدة تحل محل القديمة:

sad
صنف شكل
  دالة مساحة()
    ارجع 0
  نهاية
  دالة وصف()
    ارجع "شكل بمساحة " + هذا.مساحة()
  نهاية
نهاية

صنف مربع يرث شكل
  باني(ضلع)
    هذا.ضلع = ضلع
  نهاية
  دالة مساحة()
    ارجع هذا.ضلع ** 2
  نهاية
نهاية

صنف دائرة يرث شكل
  باني(نصف_قطر)
    هذا.نصف_قطر = نصف_قطر
  نهاية
  دالة مساحة()
    ارجع 3.14159 * هذا.نصف_قطر ** 2
  نهاية
نهاية

متغير م = جديد مربع(5)
اطبع_سطر(م.وصف())   # شكل بمساحة 25

متغير د = جديد دائرة(3)
اطبع_سطر(د.وصف())   # شكل بمساحة 28.27431

قواعد الوراثة

القاعدةالوصف
وراثة مفردةكل صنف يرث من صنف أب واحد فقط
يرثالكلمة المفتاحية لتحديد الأب
الأساس()استدعاء باني الصنف الأب
تجاوز الدوالالصنف الابن يمكنه إعادة تعريف دوال الأب
الوصول للخصائصالابن يرث جميع الخصائص والدوال العامة

نصيحة

إذا احتجت وراثة سلوك من عدة مصادر، استخدم السمات (Traits) بدلاً من الوراثة المتعددة.

  • كلمة يرث تحدد الصنف الأب
  • الأساس(...) يستدعي باني الأب (يجب استدعاؤه في الباني المشتق)
  • يمكن تجاوز أي دالة من الأب بإعادة تعريفها
  • عام/محمي/خاص تتحكم في إمكانية الوصول من الأبناء

السابق: الأصناف ← | التالي: السمات ←

مُرخَّص بموجب رخصة MIT