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

Anonim

الميراث مقابل حاوية

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

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

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

ما هو حاوية؟

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

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

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