مقدمة
في الدرس السابق تعرفنا على التغليف (Encapsulation)، وعرفنا كيف يساعد على حماية البيانات وتنظيم طريقة الوصول إليها.
لكن عند بناء المشاريع قد نجد أن بعض الفئات تشترك في خصائص ووظائف متشابهة.
بدلًا من كتابة الكود نفسه داخل كل فئة، يمكن لفئة أن ترث الخصائص والوظائف من فئة أخرى.
وهذا ما يسمى الوراثة (Inheritance).
---
ما هي الوراثة؟
الوراثة هي مفهوم في البرمجة كائنية التوجه يسمح لفئة جديدة بالاستفادة من خصائص ووظائف فئة موجودة مسبقًا.
الفئة التي يتم الوراثة منها تسمى عادةً الفئة الأساسية (Superclass)، بينما الفئة التي ترث منها تسمى الفئة المشتقة (Subclass).
---
لماذا نستخدم الوراثة؟
تساعد الوراثة على إعادة استخدام الكود بدلًا من كتابته أكثر من مرة.
فإذا كانت عدة فئات تشترك في خصائص أو وظائف معينة، يمكن وضع هذه الأشياء المشتركة في فئة أساسية، ثم إنشاء فئات أخرى ترث منها.
---
الفئة الأساسية (Superclass)
الفئة الأساسية تحتوي على الخصائص والوظائف المشتركة بين مجموعة من الفئات.
ويمكن للفئات الأخرى الاستفادة من هذه العناصر من خلال الوراثة.
وهذا يساعد على إنشاء تصميم أكثر تنظيمًا.
---
الفئة المشتقة (Subclass)
الفئة المشتقة هي فئة ترث من فئة أساسية.
يمكنها استخدام العناصر التي ترثها، كما يمكنها إضافة خصائص ووظائف جديدة خاصة بها.
وبذلك يمكن توسيع الفئة الأساسية دون تعديلها بشكل مباشر.
---
الوراثة وإعادة استخدام الكود
من أهم فوائد الوراثة أنها تقلل تكرار الكود.
فعندما توجد وظيفة مشتركة بين عدة فئات، يمكن وضعها في الفئة الأساسية مرة واحدة، ثم الاستفادة منها في الفئات المشتقة.
---
أهمية الوراثة في OOP
تعتبر الوراثة من المفاهيم الأساسية في البرمجة كائنية التوجه.
وتساعد على بناء علاقات واضحة بين الفئات، خصوصًا عندما توجد علاقة منطقية بين نوع عام وأنواع أكثر تخصصًا.
---
استخدام الوراثة في المشاريع
تستخدم الوراثة في العديد من التطبيقات، مثل:
- الألعاب.
- تطبيقات الهواتف.
- الأنظمة الإدارية.
- التطبيقات المكتبية.
- الأنظمة الكبيرة التي تحتوي على أنواع متعددة من الكائنات.
---
فوائد الوراثة
توفر الوراثة العديد من المزايا، منها:
- إعادة استخدام الكود.
- تقليل تكرار التعليمات.
- تنظيم العلاقة بين الفئات.
- تسهيل تطوير المشاريع.
- إمكانية إضافة خصائص ووظائف جديدة للفئات المشتقة.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- استخدام الوراثة دون وجود علاقة منطقية بين الفئات.
- إنشاء مستويات كثيرة من الوراثة دون حاجة.
- الخلط بين الفئة الأساسية والفئة المشتقة.
- محاولة الوصول إلى عناصر غير متاحة بسبب محددات الوصول.
لذلك يجب استخدام الوراثة عندما تكون هناك علاقة واضحة ومناسبة بين الفئات.
---
ملخص الدرس
تعرفنا في هذا الدرس على الوراثة (Inheritance) في Java، وعرفنا كيف يمكن لفئة أن ترث خصائص ووظائف من فئة أخرى، وكيف تساعد الوراثة على إعادة استخدام الكود وتنظيم العلاقات بين الفئات.
في الدرس التاسع والعشرون سنتعرف على تعدد الأشكال (Polymorphism)، وسنفهم كيف يمكن للكائنات التعامل مع نفس العملية بطرق مختلفة.



