الجمعة، 27 سبتمبر 2019

مفهوم الوراثة بشكل عام Inheritance

السلام عليكم
النهاردة حابب اوضح مفهوم الوراثة بشكل عام
Inheritance
                             
اتكلمنا فى شرح سابق ان فى البرمجة الكائنية يوجد مفهومين رئيسين .
هما الكلاس class  والكائن object .
وعرفنا ان الكلاس هو التصميم الا يجب عملة فى البداية
اما الكائن هو نسخة من هذا الكلاس .

والسؤال: هو البرنامج الا احنا هنصممة هيحتوى فقط على كلاس واحد او من الممكن انه يحتوى على اكثر من كلاس ؟
طبعا البرنامج ممكن يحتوى على اكثر من كلاس .

سؤال اخر : اثناء تصميم الكلاسات متى نحتاج الى تطبيق مفهوم الوراثة inheritance ؟
ببساطة لو اكتشفت أن البرنامج الا بصممة يوجد بة مجموعة من الكلاسات تشترك فى مجموعة من الصفات ( المتغيرات )
والعمليات ( الدوال )
 بدلا من كتابة  كل هذة المتغيرات والدوال على مستوى كل كلاس وبالتالى تكرار الكود اكثر من مرة .
بتطبيق مفهوم الوراثة Inheritance  يتم تجميع كل المتغيرات والدوال المشتركة فى كلاس واحد يسمى
 super class
وعند انشاء اى كلاس يستخدم هذة الدوال والمتغيرات نجعلة يرثها من الكلاس super
وتسمى الكلاسات التى ترث   sub classes .

فتكون المحصلة فى النهاية ان عندنا
 كلاس الاب يسمى  super class بالمتغيرات والدوال  وهو الكلاس الذى يتم الوراثة منة
يحتوى على المتغيرات والدوال المشتركة بين مجموعة من الكلاسات.
وكلاسات الابناء تسمى sub classes وهى الكلاسات التى ترث من super
تحتوى على المتغيرات والدوال الخاصة بهم بالاضافة الى المتغيرات والدوال المورثة من super class .
وهنا طبقنا مفهوم الوراثة تمام كما هى مطبقة فى الحياة.

طيب سؤال اخير اية الا احنا هنستفادة لما اقسم البرنامج بالشكل دا ؟
اقولك بعض المزايا
بالاضافة الى تقليل الكود
 لو استخدمت دالة فى جميع
sub classes
 وحبيت انى اعدل فيها لسبب ما
هكتفى فقط بتعديل الكود  فى كلاس super وبالتالى سيتم التعديل مباشرة فى جميع كلاسات الابناء .
تحياتى

***********************


***********************

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