- خصائص الميراث
- التسلسل الهرمي
- تعدد الأشكال
- أنواع الميراث
- ميراث فريد
- الميراث متعدد المستويات
- الميراث الهرمي
- الوراثة الهجينة
- تعدد الميراث
- أنواع الميراث من الصنف الأساسي
- الميراث العام
- الميراث المحمي
- الميراث الخاص
- أمثلة
- مثال بايثون
- المثال في C ++
- المراجع
و الميراث في وجوه - البرمجة الموجهة هو وسيلة لتنظيم الكائنات في التسلسل الهرمي من العام إلى الخاص. إنها الأداة المستخدمة لتوسيع فئة إلى فئة أخرى ، مع الحفاظ على تنفيذ مماثل.
في معظم اللغات القائمة على الكائنات القائمة على الطبقة ، فإن الكائن الذي تم إنشاؤه من خلال الوراثة ، والذي يسمى الكائن الفرعي ، يحصل على جميع خصائص وسلوكيات الكائن الأصل.

دليل بسيط على الميراث في اتجاه الكائن. المصدر: Pluke / CC0 Creative Commons CC0 1.0 Universal Public Domain
لذلك ، فهي صفة تمثل العلاقة بين الطبقات المختلفة. يسمح الميراث للفصل أن يكون له نفس السلوك مثل فئة أخرى وتوسيع هذا السلوك أو تكييفه لتوفير إجراء خاص لاحتياجات محددة.
يمكن أن يساعد الوراثة في تمثيل الكائنات التي لها بعض الاختلافات وبعض أوجه التشابه في طريقة عملها. يمكنك وضع جميع الوظائف المشتركة بين الكائنات في فئة أساسية ، ثم تحديد فئة فرعية واحدة أو أكثر باستخدام وظائفك المخصصة.
خصائص الميراث
الوراثة هي إحدى الخصائص الرئيسية للبرمجة الموجهة للكائنات ، وتستخدم لتحديد فئة جديدة من الفئات الموجودة.
بمعنى ، يمكن اشتقاق فئات جديدة من فئات أساسية موجودة ، مع إضافة ميزات جديدة. ليس عليك الكتابة من الصفر. لذلك ، توفر الوراثة طريقة لإعادة استخدام التعليمات البرمجية الموجودة بسهولة.
إذا كان لديك بالفعل فئة تقوم بكل ما تريده تقريبًا ، فيمكنك إنشاء فئة فرعية يتم فيها تجاوز بعض سلوكها جزئيًا ، أو ربما تتم إضافة بعض الوظائف الجديدة.
ترث الفئة المشتقة جميع وظائف الفئة الأساسية ، باستثناء ما يلي:
- المنشئون والمدمرون وصانعو النسخ للفئة الأساسية.
- المشغلون المثقلون من الفئة الأساسية
- وظائف ودية من الدرجة الأساسية.
التسلسل الهرمي
كما تفعل شجرة العائلة ، يعمل الميراث على تكوين تسلسل هرمي للفئات. من المهم ملاحظة أن السمات المحددة للفئة الأساسية ستكون موجودة تلقائيًا في الفئة المشتقة. أيضًا ، ستعمل طرق الفئة الأساسية مع المشتقات.
يُقال أن الفئة هي فئة فرعية من الفئة التي ترث منها. من ناحية أخرى ، سيكون هذا الفصل هو الطبقة المميزة الخاصة بك. يمكن الإشارة إلى الفئة الأكثر عمومية بالفئة الأساسية ، لأنها تقع في قاعدة التسلسل الهرمي.
تعدد الأشكال
تحظى الوراثة بشعبية كبيرة في بعض اللغات ذات الأنواع الثابتة ، لأنها تسمح للمبرمج بتجنب بعض قيود النوع الثابت.
يعتبر الكائن الذي يرث من كائن آخر نوعًا فرعيًا من هذا الكائن. من الأمثلة على ذلك المادتان "المعلم" و "الطالب" ، وكلاهما يرث من "الشخص".
إذا كان المدرس والطالب من نفس نوع الشخص ، فيمكنك كتابة دالة تقبل نوع الشخص كمعامل وتعمل على كائنات المعلم والطالب ، لأن كلاهما ورثة الشخص.
أنواع الميراث
ميراث فريد
عندما ترث فئة مشتقة خصائص وسلوك فئة أساسية واحدة. أي أن فئة واحدة تمتد إلى فئة أخرى فقط.
الميراث متعدد المستويات
يشير إلى الأداة حيث يمكنك أن ترث من فئة مشتقة ، مما يجعل هذه الفئة المشتقة هي الفئة الأساسية لفئة جديدة. أي أنه ينتج عندما يتم إنشاء فئة مشتقة من فئة مشتقة أخرى.
الميراث الهرمي
في هذا الميراث ، ترث العديد من الفئات الفرعية من فئة واحدة. أي أنه يحدث عندما يتم توريث فئة أساسية واحدة بواسطة أكثر من فئة مشتقة واحدة.
الوراثة الهجينة
هو الميراث الناتج عندما يتم الجمع بين أي من الميراث الثلاثة السابقة (مفردة ، هرمية ومتعددة المستويات).
تعدد الميراث
إنه يتوافق مع رقم الوراثة عندما ترث الطبقة من أكثر من طبقة عليا واحدة. العيب في هذا النوع من الوراثة هو أن الفئة المشتقة يجب أن تتعامل مع التبعية التي تمتلكها على فئتين أساسيتين.
من ناحية أخرى ، يسمح هذا النوع من الميراث للمبرمجين ببناء فئات تجمع بين جوانب الفئات المتعددة والتسلسلات الهرمية المقابلة لها.
أنواع الميراث من الصنف الأساسي
الميراث العام
عندما يتم اشتقاق فئة من فئة أساسية عامة ، يصبح الأعضاء العموميون في الفئة الأساسية أعضاءً عامين في الفئة المشتقة ويصبح الأعضاء المحميون من الفئة الأساسية أعضاءً محميين من الفئة المشتقة.
لن يمكن الوصول إلى الأعضاء الخاصين في الطبقة الفائقة مباشرةً من فئة مشتقة ، ولكن يمكن الوصول إليها عن طريق المكالمات التي يتم إجراؤها للعامة والأعضاء المحميون من الفئة الأساسية.
الميراث المحمي
عندما يتم إنشاء فئة ترث من طبقة فائقة محمية ، سيصبح كل من الجمهور والأعضاء المحمي من هذه الطبقة المتميزة أعضاء محميين في الفئة المشتقة.
الميراث الخاص
عندما يتم إنشاء فئة فرعية من فئة فائقة خاصة ، سيصبح الأعضاء العامون والمحميون من هذه الفئة العليا أعضاءً خاصين في الفئة الفرعية.
أمثلة
مثال بايثون
لإظهار كيفية عمل مبدأ الوراثة ، سنأخذ الروبوتات أو فئة أفضل من الروبوتات في لغة برمجة Python. للقيام بذلك ، سيتم تحديد فئة تسمى RobotMédico (PhysicianRobot) ، وهي مشتقة من فئة Robot superclass.

إذا نظرت إلى رمز فئة RobotMédico ، يمكنك أن ترى أنه لم يتم تحديد أي سمة أو طريقة في هذه الفئة.
نظرًا لأن فئة RobotMedico هي فئة فرعية من Robot ، فإنها ترث كلاً من التابعين __init__ و say_hi في هذه الحالة. يعني وراثة هذه الأساليب أنه يمكن استخدامها كما لو تم تعريفها في فئة RobotMédico.
عندما يتم إنشاء مثيل RobotMedico ، فإن الوظيفة __init__ ستنشئ أيضًا سمة الاسم. يمكن تطبيق طريقة say_hi على الكائن "y" في RobotMédico ، كما يتضح من نتيجة الكود السابق.
المثال في C ++
يمكن للفصل أن يرث من أكثر من فئة واحدة ، مما يعني أنه يمكن أن يرث البيانات والوظائف من فئات فائقة متعددة. لتعريف فئة مشتقة ، يمكنك استخدام قائمة اشتقاق فئة لتحديد الفئات الأساسية.
تقوم قائمة اشتقاق الفئة في C ++ بتسمية فئة أساسية واحدة أو أكثر ولها الشكل التالي: الفئة المشتقة: فئة تحديد الوصول ، حيث يكون محدد الوصول عامًا أو محميًا أو خاصًا ، والفئة الأساسية هي اسم فئة محددة مسبقًا. إذا لم يتم استخدام محدد الوصول ، يتم أخذ الخصوصية بشكل افتراضي.
يمكن اعتبار الطبقة الفائقة "الشكل" والفئة المشتقة منها "المستطيل" على النحو التالي:

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها ، يحدث الإخراج التالي: "إجمالي المساحة: 35".
المراجع
- ديف براونشفايغ (2020). الميراث وتعدد الأشكال. مجتمع ريبوس. مأخوذة من: press.rebus.community.
- دورة بايثون (2020). ميراث. مأخوذة من: python-course.eu.
- موجه البيانات (2020). الميراث. مأخوذة من: datamentor.io.
- نقطة الدروس (2020). الوراثة C ++. مأخوذة من: tutorialspoint.com.
- صافي المعلومات (2020). أنواع الميراث المختلفة. مأخوذة من: net-informations.com.
