مقدمة
في الدرس السابق بدأنا التعرف على البرمجة كائنية التوجه (OOP)، وتعرفنا على الفئات والكائنات والخصائص والدوال.
ومن أهم المفاهيم في OOP الوراثة (Inheritance).
تسمح الوراثة بإنشاء فئة جديدة تعتمد على فئة موجودة مسبقًا، والاستفادة من خصائصها ودوالها مع إمكانية إضافة أو تعديل سلوك جديد.
---
ما هي الوراثة؟
الوراثة هي آلية تسمح لفئة جديدة، تسمى الفئة المشتقة (Child Class)، بالاستفادة من فئة أخرى تسمى الفئة الأساسية (Parent Class).
وهذا يقلل من تكرار الكود ويساعد على تنظيم العلاقات بين الفئات.
---
لماذا نستخدم الوراثة؟
تستخدم الوراثة عندما توجد فئات بينها علاقة واضحة.
فإذا كانت عدة فئات تشترك في خصائص أو وظائف معينة، يمكن وضع الأجزاء المشتركة في فئة أساسية، ثم جعل الفئات الأخرى ترث منها.
---
الفئة الأساسية والفئة المشتقة
يمكن تقسيم العلاقة إلى:
Parent Class: الفئة الأساسية التي تحتوي على الخصائص والدوال المشتركة.
Child Class: الفئة المشتقة التي ترث من الفئة الأساسية ويمكنها إضافة خصائص ودوال جديدة.
---
إعادة استخدام الكود
من أهم فوائد الوراثة أنها تقلل الحاجة إلى كتابة الكود نفسه أكثر من مرة.
يمكن تعريف الوظائف المشتركة في الفئة الأساسية، ثم الاستفادة منها في الفئات المشتقة.
وهذا يجعل المشروع أكثر تنظيمًا.
---
إضافة خصائص ودوال جديدة
الفئة المشتقة لا تقتصر على ما ورثته من الفئة الأساسية.
يمكنها إضافة خصائص ودوال خاصة بها، بحيث يصبح لديها سلوك إضافي يناسب وظيفتها.
---
إعادة تعريف الدوال (Method Overriding)
يمكن للفئة المشتقة إعادة تعريف دالة موروثة وتقديم تنفيذ مختلف لها.
وهذا يسمح لكل فئة مشتقة بتوفير السلوك المناسب لها.
ويعد Overriding من الأساسيات التي سنحتاج إليها عند دراسة تعدد الأشكال.
---
أنواع الوراثة
تدعم Python عدة أشكال من الوراثة، منها:
الوراثة الأحادية
الوراثة المتعددة
الوراثة متعددة المستويات
الوراثة الهرمية
وسنتعرف على هذه الأنواع بشكل أكثر تفصيلًا في الدروس القادمة.
---
الوراثة المتعددة
تسمح Python للفئة بأن ترث من أكثر من فئة.
وهذا يسمى Multiple Inheritance.
لكن يجب استخدامه بحذر حتى لا يصبح تصميم البرنامج معقدًا.
---
استخدام الوراثة في المشاريع
تستخدم الوراثة في العديد من المشاريع، مثل:
الألعاب
تطبيقات سطح المكتب
تطبيقات الويب
الأنظمة الإدارية
المشاريع البرمجية الكبيرة
---
فوائد الوراثة
من أهم فوائدها:
إعادة استخدام الكود
تقليل التكرار
تنظيم العلاقات بين الفئات
تسهيل تطوير المشاريع
إمكانية تخصيص سلوك الفئات المشتقة
---
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
استخدام الوراثة دون وجود علاقة واضحة بين الفئات
إنشاء مستويات كثيرة من الوراثة
الخلط بين الوراثة وإعادة تعريف الدوال
استخدام الوراثة فقط لتجنب كتابة بضعة أسطر من الكود
لذلك يجب أن تكون هناك علاقة منطقية واضحة بين الفئة الأساسية والفئة المشتقة.
---
ملخص الدرس
تعرفنا في هذا الدرس على الوراثة (Inheritance) في Python، وعرفنا كيف يمكن للفئات المشتقة الاستفادة من خصائص ودوال الفئات الأساسية، كما تعرفنا على إعادة تعريف الدوال وبعض أشكال الوراثة.
في الدرس السادس والثلاثون سنتعرف على تعدد الأشكال (Polymorphism) في Python، وسنفهم كيف يمكن للكائنات المختلفة أن تستجيب للوظيفة نفسها بطرق مختلفة.



