easyDelphi Q&A

Reword

0 تصويتات
71 مشاهدات
سُئل في تصنيف OOP بواسطة (1,810 نقاط) | 71 مشاهدات
 
هل تقصد inherited كاجراء يطلب داخل الكود .
ام تقصد المصطلح العام لـ inherited ؟
كاجراء يطلب داخل الكود .. مثل الذي نجده في  destructor Destroy;

2 إجابة

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

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

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

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

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

 

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

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

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

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

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

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

اسئلة متعلقة

+1 تصويت
1 إجابة
+4 تصويتات
2 إجابة
سُئل منذ 1 يوم في تصنيف Database بواسطة zaher (1,470 نقاط) | 45 مشاهدات
+2 تصويتات
2 إجابة
+1 تصويت
1 إجابة
سُئل يوليو 2 في تصنيف Delphi بواسطة rahiche (1,740 نقاط) | 34 مشاهدات
0 تصويتات
1 إجابة
سُئل منذ 1 يوم في تصنيف Libraries بواسطة Amar Gozim (1,810 نقاط) | 20 مشاهدات

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

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

66 سؤال
141 إجابة
228 تعليق
77 مستخدم