easyDelphi Q&A
+1 تصويت
87 مشاهدات
سُئل في تصنيف OOP بواسطة (5,760 نقاط) | 87 مشاهدات
 
هل تقصد inherited كاجراء يطلب داخل الكود .
ام تقصد المصطلح العام لـ inherited ؟
كاجراء يطلب داخل الكود .. مثل الذي نجده في  destructor Destroy;

2 إجابة

+3 تصويتات
أفضل إجابة
inherited في الكود . تعني طلب نفس الاجراء الموجود فيه هذا الامر من كلاس الأب . اطلبه ونفذه هنا .

لتفهم الموضوع يحتاج شرح هذه النقطة اولا.

في الـ oop. عندما يتم انشاء اوبجكت . فان انشائه يبدأ من انشاء اول اوبجكت ـ ابجكت الاصل ـ وتحديدا تنفيذ اجراء constractor  . ثم ينفذ اجراء الـ construactor الموجود في كلاس الابن  وثم ابن الابن و ابن ابن ابن و و . حتى يصل للاوبجكت الذي طلبت انشاءه . مرورا بكل سلسلة اشتقاقات الكلاس من البداية وصولا للكلاس الذي تريد انشاء اوبجكت منه

الهدم يتم بطريقة معاكس . يبدأ بتنفيذ اجراء Destory في الاوبجكت الذي تريد هدمه . ثم ينفذ اجراء الهدم Destroy الموجود في كلاس الاب بعدها ينفذ اجراء الهدم في كلاس الجد .. وهكذا وصولا لاول اوبجكت .

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

 

الان ناتي لـ inherited . وحسب ما قلته سابقا. هي ستنفذ اجراء create او destroy من كلاس الاب .

الفائدة انك تستطيع تحديد متى سينفذ هذه الاجراءات . قبل الكود الذي كتبته او بعده . حسب مكانها في الكود .

ملاحظة : ان لم تكتبها في الكود . هذا سيعني انه سينفذ اجراء الهدم والبناء في بداية الكود وقبل الكود الذي كتبته انت .
تم الرد عليه بواسطة (15,060 نقاط)
مختارة بواسطة
"ان لم تكتبها في الكود . هذا سيعني انه سينفذ اجراء الهدم والبناء في بداية الكود وقبل الكود الذي كتبته انت "
هذه حالة خاصة بال Create/Destroy
اما بباقي الدوال Virtual Methods اذا لم يكتب inherited لن يتم استدعاء ال Methods للكلاس المشتق منه.
صح صح صح صح
انا التهيت بصياغة الجواب حتى يكون مفهوم ونسيت احكي عن الباقي . :(
منيح انتبهت.
شكرا
–1 تصويت

يمكنك البدء من خلال هذا الفيديو 

https://www.youtube.com/watch?v=yWzH7Mm6KA8

تم الرد عليه بواسطة (6,370 نقاط)
عُدل بواسطة

اسئلة متعلقة

+2 تصويتات
1 إجابة
+2 تصويتات
2 إجابة
سُئل أغسطس 30 في تصنيف vcl بواسطة Ammar Salah (1,630 نقاط) | 28 مشاهدات
+2 تصويتات
2 إجابة
سُئل أغسطس 29 في تصنيف vcl بواسطة Ammar Salah (1,630 نقاط) | 36 مشاهدات
+4 تصويتات
1 إجابة
سُئل يوليو 25 في تصنيف Delphi بواسطة Amar Gozim (5,760 نقاط) | 44 مشاهدات
+2 تصويتات
5 إجابة
سُئل يوليو 21 في تصنيف Delphi بواسطة Amar Gozim (5,760 نقاط) | 70 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

207 سؤال
391 إجابة
682 تعليق
118 مستخدم