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

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

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

فيديو: الفرق بين الميراث والتكوين
فيديو: أزمة السلفية مع التفويض بين تفويض الكيف وتفويض المعنى والتعطيل - الشيخ جمال فاروق الأزهري 2024, يوليو
Anonim

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

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

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

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

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

ما هو التكوين؟

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

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

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

موصى به: