شـبـكــة عـمّـــار
إخبارية - ترفيهية
- تعليمية



جديد الصور
جديد الأخبار
جديد المقالات


جديد الصور

جديد البطاقات

جديد الصوتيات

المتواجدون الآن


تغذيات RSS

Regular Expression --1
2012-08-10 06:56


بسم الله الرحمن الرحيم

في درس اليوم إن شاء الله سنتعرف على مفهوم هام وهو الوراثة Inheritance ,


لو اعتبرت أن شركة NISSANهي الأب و هذه الشركة لها أبناء هم :سيارة sunny, وسيارة Maxima بحيث أن هؤلاء الأبناء يرثون جميع صفات الأب "شركة نيسان" بالإضافة إلى ذلك فكل ابن منهما يتفرد بصفات خاصة به, هذا بكل بساطة مبدأ الوراثة في السي شارب.

نريد الآن أن نقوم بتحويل المثال السابق إلى برنامج, ولكن قبل ذلك يجب أن تعرف عدة أمور :

الكلاس الأب يدعى Base Class "or super class" , والكلاس الابن يدعى Derived Class "or sub class".

في البرنامج التالي سنقوم بإنشاء ,4 classesأحدها للأب "NISSAN" , والآخر للابن الأول "Maxima", والثالث للابن الثاني "Sunny", والأخير بداخله الدالة Main.

التعبير عن وراثة الابن Maxima للأب NISSAN في السي شارب يتبع الأسلوب التالي : class Maxima : NISSAN

ونفس الطريقة مع الكلاس Sunny ووراثته للكلاس class Sunny : NISSAN , NISSAN

بحيث أن رمز الوراثة هو " : " والذي يسمى "colon symbol".

من المهم معرفة أن أي Derived classلا يمكنه وراثة أكثر من Base classواحد فالسي شارب لا تدعم الوراثة المتعددة* "فعلا, فلو نظرت إليها منطقيا لرأيت أنه من المستحيل أن يكون للابن أكثر من أب !!".



الأسطر (5-16) : تعريف الكلاس NISSAN, عرفنا بداخله الـ Constructor, و الدالة Companyوالتي تطبع موقع الشركة .

الأسطر (17-28) : تعريف الكلاس Maxima الذي يرث الكلاس NISSAN, عرفنا بداخله الـ Constructor, و الدالة FuelTank والتي توضح سعة الوقود اللازمة للسيارة.

الأسطر (29-40): تعريف الكلاس Sunny بكيفية مشابهة للكلاس السابق.

الأسطر (41-56): تعريف الدالة Main, في السطر (47(: أنشأنا objectمن الكلاس Maxima "أحد أبناء نيسان"كممثل عن هذا الكلاس, بمجرد وصول الكومبايلر لهذا السطر فإنه سينتقل مباشرة للسطر 20 لينفذ الـ constructorللكلاس Maxima و هذا الـ Constructorبدوره سيستدعي الـ Constructorللكلاس الأب NISSAN في السطر 8 ليتم تنفيذه.

ومن هنا نستنتج أنه دائما يتم تنفيذ الـ Constructorللكلاس الأب أولا ثم تنفيذ الـConstructorللكلاس الوارث"الابن" , ويتضح ذلك من خلال السطرين الأول والثاني من المخرجات .

ثم لاحظ السطرين (48 – 49 ) كيف أن هذا الكائن "maxima" تمكن من الوصول للدالة FuelTankالموجودة في الكلاس "Maxima" الذي أنشئ منه الكائن, ومن الوصول للدالة Companyالموجودة في الكلاس الأب "NISSAN" و النتيجة هي السطرين الثالث والرابع من المخرجات.

ومن هنا تأكدنا من أن الكائن الذي يتم تعريفه من الـ Derived class, يستطيع الوصول للدوال الموجودة في الـ Derived classوأيضا الموجودة في الـ Base class.

الأسطر (52-54): هنا نفس الأسلوب الذي اتبعناه في الأسطر القليلة السابقة تماما. والمخرجات:





Inheritance in win application الوراثة داخل تطبيقات الويندوز :

جرب أن تنشئ برنامج جديد من نوع Windows application, ودقق النظر في الـ generated code ستجد أن الـ formهو الكلاس وهو يرث من الكلاس الأب System.Windows.Forms.Form.

publicclass Form1 : System.Windows.Forms.Form

و لو استخدمت بعض الـ control مثل الـ(button or label or …..) على الـ formلديك فلاحظ أنك ستتعامل معها ككائنات داخل الكلاس .

وأخيرا أتمنى أن أكون وفقت في عرض الفكرة


تعليقات 0 | إهداء 0 | زيارات 662


خدمات المحتوى
  • مواقع النشر :
  • أضف محتوى في Digg
  • أضف محتوى في del.icio.us
  • أضف محتوى في StumbleUpon
  • أضف محتوى في Google


تقييم
1.00/10 (3 صوت)


Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.