(Inheritance) مبدأ الوراثة في البرمجة الكائنية

31/03/2020 java, line

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

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

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

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

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

تقنيات اعادة استخدام الصفوف بلغة الجافا
دورة جافا سكريبت باللغة العربية
access modifier طرق الوصول للمتغيرات والدوال الموجودة داخل الكلاس
Netbeans كتاب تجربتي مع برنامج
سلسلة الشامل بالجافا أساسيات الجافا,البرمجة الموجهة,هياكل البيانات
SSD & HDD الفرق بين
USB منافذ ال
DHCPايه هو ال
“NANO-TECHNOLOGY” زراعة الشرائح الإلكترونية في جسم الإنسان و تقنية ال
JSON ما هي ال
نبذه عامة عن نظام لينكس
علماء الصين يحولون النحاس إلى ذهب
Encapsulation التغليف في البرمجة الكائنية