وراثة (علوم الحاسوب)

الوراثة هي من أهم ميزات البرمجة غرضية التوجه حيث توفر لك خاصية تطوير الصفوف لأنها تقوم على مبدأ التعميم والتخصيص. ويرتكز هذا المفهوم على أنه بإمكان كائن ما من الاستفادة من خواص الكائن الأعلى منه كما بإمكانه إضافة بعض الخواص المتعلقة به وحده, أي أنها تستطيع وراثة المميزات الأساسية للصف (class) وإدخال مميزات جديدة في صف جديد مما يساعد على مبدأ إعادة استخدام الأصناف التي تم إنشاؤها من قبل (Reusability) . هذه الخاصية توفر الكثير من الوقت للمبرمج وتقطع عليه أشواطاً في تطوير برنامجه, والفكرة من ذلك هي أننا نريد المتابعة من نقطة توقف الغير, وليس البدء من الأول.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

علاقة الصفوف مع بعضها في الوراثة

لدينا نوعين من الصفوف:

  1. صف القاعدة (الأساسي أو الموروث أو الأب)Base class / Super Class: وهو الصنف الذي يحوي البيانات والعمليات المراد توريثها لصنف آخر .
  2. الصف المشتق (الوارث أو الابن) subclass / Derived class : وهو الصنف الوارث لخصائص وعمليات الصنف الأساس.


مبدأ التخصيص والتعميم

أنواع الوراثة

  • Single Inheritance أو الوراثة الأحادية:

في هذا النظام لدينا كل صف يرث كافة الخواص والسلوك (Attribute & Method) من أب وحيد ووحيد فقط.

  • Multi Inheritance أو الوراثة المتعددة:

في هذا النظام قد نجد بعض الصفوف ترث من أكثر من صف (أي لها أكثر من أب) وتقوم بوراثة كافة الخصائص والسلوكيات الخاصة بكافة الآباء التي تم الوراثة منها.

أنواع الوراثة من حيث نوعية الوصول إلى البيانات

حيث يحدد نوع الوراثة درجة الوصول للبيانات والعمليات الموجودة في صنف الأساس من خلال الصنف المشتق, والأنواع هي :

  1. الوراثة الخاصة private Inheritance : عندما يرث صنف مشتق من صنف الأساس وكان نوع الوراثة خاص فإنه كل البيانات والعمليات الموجودة في صنف الأساس تصبح خاصة الصنف المشتق .
  2. الوراثة المحمية protected Inheritance : وفي هذا النوع تصبح كل بيانات وعمليات صنف الأساس محميّة بالصنف المشتق .
  3. الوراثة العامة public Inheritance : في هذا النوع يتم توزيع البيانات والعمليات كما يلي :
  • المحمي protected: في صنف الأساس يصبح محمي في الصنف المشتق .
  • العام public في صنف الأساس يصبح عام في الصنف المشتق .
  • الخاص لا يورّث أبداً (البيانات الخاصة لا تورّث أبداً ).

حماية البيانات في الوراثة

يتم تصنيف البيانات داخل الصفوف على ثلاثة أصناف :

  1. بيانات عامة Public: بحيث يمكن للمستخدم العادي الوصول إليها خارج الصف.
  2. بيانات خاصة Private: وهي الأغراض المغلفة أو المخفية والتي لا يمكن التعامل معها إلا داخل الصف.
  3. بيانات شبه مخصوصة protected : حيث أنها تمزج مابين التصنيفين السابقين, بحيث لا تسمح بالوصول إلى الإغراض الموجودة إلا من خلال الوراثة أو من خلال الصنف نفسه.