Dart Academy · درس

استدعاء super وتسلسل البنّاءات

الوصول إلى الفئة الأصلية أثناء الإنشاء

الدرس 2 من 413 خطوة

استدعاء super وتسلسل البنّاءات درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.

ترتيب الإنشاء

عند إنشاء فئة فرعية، يجب إعداد الأب أولًا. يضمن Dart تشغيل الباني الخاص بالأب قبل بدء جسم الابن. 🏗️

تعرّف إلى super

تشير الكلمة المفتاحية super إلى جزء الأب من الكائن. وتستخدمها للوصول إلى باني الأب وطرقه وحقوله من داخل الابن.

‏super() الضمني

إذا لم تكتب شيئًا، يستدعي Dart تلقائيًا باني الأب الذي لا يأخذ معاملات نيابةً عنك. وهذا super() غير المرئي هو سبب تهيئة الآباء دائمًا أولًا.

class Animal { Animal() => print('Animal'); }
class Dog extends Animal { Dog(); }

استدعاء super صراحةً

عندما يحتاج الأب إلى معاملات، تستدعي super(...) في قائمة مهيئات الباني، بعد النقطتين. وهكذا تمرر القيم إلى أعلى سلسلة الوراثة.

class Dog extends Animal {
  Dog(String name) : super(name);
}

موضع super

يوضع استدعاء super في قائمة المهيئات، وليس داخل جسم الباني أبدًا. وعند بدء تنفيذ الجسم، يكون الأب قد اكتمل بناؤه بالفعل.

Dog(String name, this.breed) : super(name);

معاملات super

يتيح لك Dart الحديث تمرير المعاملات مباشرةً إلى الأب باستخدام super.field. وهذا يزيل الشيفرة التكرارية الزائدة من قائمة المعاملات.

class Dog extends Animal {
  Dog(super.name);
}

استدعاء طرق super

داخل طريقة متجاوزة، ينفذ super.method() النسخة الأصلية من طريقة الأب. وهكذا توسّع السلوك بدلًا من استبداله بالكامل.

@override
void speak() {
  super.speak();
  print('extra');
}

التسلسل صعودًا في شجرة الوراثة

عند وجود عدة مستويات من الوراثة، يستدعي كل باني باني الأب الخاص به. تصل هذه السلسلة إلى القمة، ثم تنفذ الأجسام نزولًا حتى تصل إلى فئتك.

ترتيب المهيئات

الترتيب الكامل هو: قائمة المهيئات وsuper أولًا، ثم جسم الأب، ثم جسم الابن. وتكون الحقول جاهزة لـ final قبل تنفيذ أي جسم.

عندما يحتاج الأب إلى معاملات

إذا لم يكن لدى الأب باني افتراضي، فيجب أن تستدعي super بالمعاملات الصحيحة. وإذا تخطيت ذلك، فسيُبلغك Dart بخطأ في الترجمة.

إعادة التوجيه باستخدام this

يمكن لبانٍ داخل الفئة نفسها استدعاء باني آخر باستخدام this(...). هذا تسلسل بين بنائين شقيقين، وهو يختلف عن الوصول إلى الأعلى باستخدام super.

Point.origin() : this(0, 0);

تحقق سريع

فكّر في الموضع الذي يجب أن يظهر فيه استدعاء باني الأب.

مراجعة

استدعيت super لتشغيل بواني وطرق الأب، ومررت القيم باستخدام معاملات super، وأعدت توجيه البواني الشقيقة باستخدام this. 🔗

البدء مجانًا

تعلم Dart مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «استدعاء super وتسلسل البنّاءات» مجاني؟

نعم — نص درس «استدعاء super وتسلسل البنّاءات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.

ماذا ستتعلم في «استدعاء super وتسلسل البنّاءات»؟

الوصول إلى الفئة الأصلية أثناء الإنشاء تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟

لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «استدعاء super وتسلسل البنّاءات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟

نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. extends وتجاوز الطرق
  2. استدعاء super وتسلسل البنّاءات
  3. Mixins باستخدام الكلمة المفتاحية with
  4. قيود on وترتيب Mixins
← العودة إلى Dart Academy