لماذا يتم دعم الوراثة المتعددة في C ++ ولكن ليس في Java؟
لماذا يتم دعم الوراثة المتعددة في C ++ ولكن ليس في Java؟

فيديو: لماذا يتم دعم الوراثة المتعددة في C ++ ولكن ليس في Java؟

فيديو: لماذا يتم دعم الوراثة المتعددة في C ++ ولكن ليس في Java؟
فيديو: Полный курс TypeScript за час | Тайпскрипт для начинающих 2024, يمكن
Anonim

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

وفقًا لذلك ، لماذا لا يتم دعم الوراثة المتعددة في Java؟

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

أيضا ، ما هي مشكلة الألماس في تعدد الميراث؟ ال " مشكلة الماس "هو غموض يمكن أن ينشأ نتيجة للسماح تعدد الميراث . إنه أمر خطير مشكلة للغات (مثل C ++) التي تسمح لـ تعدد الميراث الدولة. ومع ذلك ، في جافا ، تعدد الميراث غير مسموح به للفئات ، فقط للواجهات ، وهذه لا تحتوي على حالة.

وبالمثل ، يتساءل الناس ، لماذا تدعم C ++ الميراث المتعدد بينما لا تدعم C #؟

تعدد الميراث في لا يدعم C # C # الميراث المتعدد ، لأنهم سببوا ذلك الإضافة تعدد الميراث أضاف الكثير من التعقيد إلى سي # مع تقديم فائدة قليلة جدًا. في سي # ، مسموح للفصول فقط يرث من فئة الوالد الوحيد ، والتي تسمى واحدة ميراث.

كيف يدعم C ++ الميراث المتعدد؟

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