الفرق بين الميراث والتكوين

Anonim

الميراث مقابل التركيب

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

ما هو الميراث؟

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

يمثل الميراث علاقة "هي-a" في أوب. وهذا يعني أساسا أن A هو أيضا B. وبعبارة أخرى، يمكن أن يكون B الطبقة مع وصف عام للكيان العالم الحقيقي معين ولكن A يحدد تخصص معين. في مشكلة البرمجة في العالم الحقيقي، يمكن توسيع فئة الشخص لخلق فئة الموظف. وهذا ما يسمى التخصص. ولكن يمكنك أيضا إنشاء فئة الموظف أولا ثم تعميمه على فئة الشخص أيضا (ط ه التعميم). في هذا المثال، سيكون لدى الموظف جميع خصائص وسلوك الشخص (أي الموظف هو أيضا شخص) وقد تحتوي على بعض الوظائف الإضافية (لذلك، الشخص ليس موظفا) كذلك.

ما هو التركيب؟

التركيب هو قدرة فئة لاحتواء كائنات من فئات مختلفة كبيانات الأعضاء. على سبيل المثال، يمكن أن تحتوي الفئة أ على كائن من الفئة ب كعضو. هنا، يمكن تنفيذ جميع الطرق العامة (أو الوظائف) المحددة في B ضمن الفئة A. تصبح الفئة (أ) الحاوية، بينما يصبح الصنف B الطبقة المحتوية. ويشار إلى التركيب أيضا باسم الحاوية. في هذا المثال، يمكن القول أن الفئة أ تتكون من الفئة ب. في أوب، يمثل التركيب علاقة "هاس-a". من المهم أن نلاحظ أنه على الرغم من أن الحاوية لديها إمكانية الوصول إلى تنفيذ جميع الأساليب العامة للطبقة الواردة، فإنه لا يمكن تغيير أو توفير وظائف إضافية. عندما يتعلق الأمر بمشكلة البرمجة في العالم الحقيقي، قد يتم تضمين عنصر من نص تكستبوكس فئة في نموذج الفئة، وبالتالي يمكن القول أن نموذج يحتوي على مربع نص (أو بدلا من ذلك، يتكون النموذج من مربع نص).

ما هو الفرق بين الميراث والتراكيب؟

على الرغم من أن الإرث والتراكيب هما مفاهيم أوب، إلا أنهما مختلفان تماما عما يسمحان للمبرمج بتحقيقه. الميراث هو قدرة الطبقة على وراثة الخصائص والسلوك من الطبقة الأم بتمديدها، في حين أن التركيب هو قدرة فئة لاحتواء كائنات من فئات مختلفة كبيانات الأعضاء. إذا تم توسيع فئة، فإنه يرث كل الخصائص العامة / المحمية / السلوك وهذه السلوكيات يمكن تجاوزها من قبل الفئة الفرعية. ولكن إذا تم احتواء فئة في أخرى، الحاوية لا تحصل على القدرة على تغيير أو إضافة السلوك إلى المضمنة. يمثل الميراث علاقة "هي-a" في أوب، في حين أن التركيب يمثل علاقة "ذات علاقة".