Product Design, Manufacturing & Innovation Resources
بيت » الوراثة (البرمجة الكائنية التوجه)

الوراثة (البرمجة الكائنية التوجه)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmer coding inheritance in object-oriented programming at a modern office.

(صورة توضيحية فقط)

الوراثة هي آلية في البرمجة الكائنية التوجه حيث تُبنى فئة جديدة (فئة فرعية أو مشتقة) على فئة موجودة (فئة أصلية أو أساسية)، فترث سماتها وأساليبها. يدعم هذا إعادة استخدام الكود ويُرسي تسلسلاً هرمياً طبيعياً بين الفئات. يمكن للفئة الفرعية توسيع السلوك الموروث أو تجاوزه، مما يسمح بتنفيذات أكثر تحديداً مع الحفاظ على واجهة مشتركة.

تُسهّل الوراثة علاقة "هو نوع من" بين الأصناف. على سبيل المثال، "كلب" هو نوع من "حيوان". في هذه الحالة، سيكون "حيوان" هو الصنف الأساسي، الذي يحتوي على سمات وأساليب عامة مثل "العمر" و"الأكل". سيكون صنف "كلب" هو الصنف الفرعي، الذي يرث هذه الخصائص ويضيف خصائصه الخاصة، مثل "السلالة" و"النباح". هذا يمنع تكرار التعليمات البرمجية، حيث يتم تعريف المنطق المشترك مرة واحدة في الصنف الأساسي ويُعاد استخدامه بواسطة جميع أصنافه الفرعية. يتم نشر التغييرات التي يتم إجراؤها على الفئة الأصلية تلقائيًا إلى جميع الفئات الفرعية، مما يبسط عملية الصيانة.

توجد أنواع مختلفة من الوراثة، منها الوراثة الأحادية (حيث ترث فئة من فئة أساسية واحدة فقط)، والوراثة المتعددة (حيث ترث فئة من أكثر من فئة أساسية)، والوراثة متعددة المستويات (حيث ترث فئة من فئة أخرى هي بدورها فئة فرعية). ورغم قوة الوراثة، إلا أنها قد تُسبب تعقيدًا وترابطًا وثيقًا بين الفئات الأساسية والفرعية. وقد يؤدي الإفراط في استخدامها إلى هياكل هرمية عميقة ومعقدة يصعب فهمها وصيانتها. غالبًا ما يُفضل التصميم الحديث التركيب على الوراثة، حيث يحتوي كائن ما على نسخة من كائن آخر لتحقيق إعادة استخدام الكود، وهو ما يُمثل علاقة "يحتوي على".

UNESCO Nomenclature: 1203
– Computer science

يكتب

نظام مجرد

خلل

Substancial

الاستخدام

استخدام واسع النطاق

مقدمات

  • مفهوم التصنيف الهرمي في علم الأحياء والفلسفة
  • هياكل البيانات التي يمكن أن تحتوي على هياكل بيانات أخرى
  • الحاجة إلى إعادة استخدام الكود في أنظمة البرمجيات الكبيرة
  • تصميم لغة المحاكاة، التي أدخلت الفئات والوراثة

التطبيقات

  • gui مجموعات أدوات واجهة المستخدم (على سبيل المثال، فئة "زر" ترث من فئة "عنصر تحكم").
  • أطر عمل لتطوير الويب (على سبيل المثال، فئات التحكم التي ترث من وحدة تحكم أساسية)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • نمذجة التصنيفات البيولوجية
  • creating specialized exception types in programming languages

براءات الاختراع:

NA

أفكار ابتكارية محتملة

  • عمارة المكونات الإضافية القابلة للتوسيع لبرامج مثل wordpress أو vscode
  • customizable واجهة المستخدم themes in operating systems
  • نقل التعلم في الشبكات العصبية حيث يتم توسيع النموذج الأساسي لمهمة جديدة
  • أنظمة إصدارات لمكونات البرامج باستخدام التسلسلات الهرمية للفئات
  • طبقات الوصول إلى البيانات العامة التي يمكن تخصيصها لقواعد بيانات مختلفة (على سبيل المثال، sql، nosql)
  • أنظمة الكيانات القائمة على المكونات في محركات الألعاب
  • بروتوكولات الأمان الطبقية الموروثة من معيار البروتوكول الأساسي
  • أطر النمذجة المالية القابلة للتوسيع
  • سلوكيات الروبوت القابلة للتخصيص والتي ترث من منصة الروبوتات الأساسية
  • اللغات الخاصة بالمجال (DSLs) التي تم إنشاؤها عن طريق توسيع قواعد اللغة الأساسية
يتعلق بـ: الوراثة، الفئة الفرعية، الفئة الأصلية، الفئة المشتقة، الفئة الأساسية، إعادة استخدام الكود، التسلسل الهرمي، علاقة "هو نوع من"، تعدد الأشكال، التجاوز.

السياق التاريخي

الوراثة (البرمجة الكائنية التوجه)

1953
1960
1960
1967
1970
1970
1970
1952
1956
1960
1967
1967
1970
1970
1970

(إذا كان التاريخ غير معروف أو غير ذي صلة، على سبيل المثال "ميكانيكا الموائع"، يتم توفير تقدير تقريبي لظهوره الملحوظ)

أحدث الإضافات

أهم المنشورات والمقالات

أفضل الأدوات الأصلية

السنة العاشرة عيد

الصور والتنزيلات بالحجم الكامل متاحة فقط، ومجانية تمامًا، للأعضاء المسجلين.