استفسار c# بخصوص الإعلان عن كائن parent name = new child();

أنا بتابع فى هذه الدورة c#

فى الدرس 24

شرح الفرق بين new و override

وتم الإعلان عن الكائن بعد new

فهمت new و override جيدا ولكن...

بكتابة اسم الكائن الذى يرثه

فما معنى ذلك ؟


المشكلة أنى لا أفهم طريقة التعريف هذه

لو أردته كان من child

فلماذا أقوم بتعريفه من الأساس من parent

أكيد فى فرق فأنا عاوز أعرف الفرق عشان أفهم السبب

parent pr = new parent();
parent pr_ch = new child1();
child1 ch = new child1();

ده البرنامج اللى انا بسأل عنه

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

المشكلة أنى لا أفهم طريقة التعريف هذه

لو أردته كان من child

فلماذا أقوم بتعريفه من الأساس من parent

أكيد فى فرق فأنا عاوز أعرف الفرق عشان أفهم السبب

هذا احد استخدامات ال Polymorphism

لنفرض مثلاً لديك ميثود تقوم بتنفيذ دالة معينة مشتركة بين اكثر من child .. وتريد ان تكتب نسخة واحدة من هذه الدالة, ولا تريد ان تكتب نسخة لكل child !

فنقوم بعمل Parent يحتوي على هذه الميثود, ونقوم بتوريثها الى كل ال child ويستطيع ال child تغيير محتوى هذه الميثود وطريقة عملها عن طريق ال Override.

مثال1 :

نسطيع الان كتابة ميثود واحدة تستقبل كل من child1 و child2 و اي شيئ يرث من Parent وتقوم بطباعة ال msg الخاصة به

مثال2 :

أظن أن ما أراد أن يفهمه الأخ و ما لم أفهمه أنا أيضا هو لماذا استعملنا

parent pr_ch = new child1();

رغم أنه كان بإمكاننا استعمال هذه child1 pr_ch = new child1();

اذا استعملت

 child1 pr_ch = new child1();

اخي شرحت هذا الموضوع في الرد .. لكن اسف جداً من الصعب شرح الموضوع وجهاً لوجه, فما بالك من خلال التعليقات :(

لكن لا تهتم بهذه الامور كثيراً واصلاً لن تستعملها في بداياتك, لكن عندما تبدأ تغوص وتطور مشاريع كتبها غيرك ستفهم كل شيئ, الان فقط يجب ان تعلم ان هذا الامر موجود وكفى.

شكرا لك على ردك..

أسف لم أكن أتابع الموقع لأرى ردك

لكنى الحمد لله كنت قد فهمت الأم بعد بعد المحاولات والتجريب

parent هو suber كلاس ل child1 فعندما يكون هناك سوبر كلاس و سب كلاس نستطيع عمل كائن من السوبر كلاس يؤشر على السب كلاس وهذا يفيد في البلوليمورفزم كما قال الاخ