كيف تحل الوراثة الافتراضية مشكلة الماس؟
كيف تحل الوراثة الافتراضية مشكلة الماس؟

فيديو: كيف تحل الوراثة الافتراضية مشكلة الماس؟

فيديو: كيف تحل الوراثة الافتراضية مشكلة الماس؟
فيديو: C++ Diamond problem in OOPS, Solution using Virtual Inheritance with Example 2024, ديسمبر
Anonim

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

في هذا الصدد ، ما هي مشكلة الماس في الميراث؟

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

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

تعرف أيضًا ، ما هي الميراث العام الافتراضي؟

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

كيف تعمل الواجهة على حل مشكلة الماس؟

كيف باستخدام واجهه المستخدم في جافا يحل ال مشكلة الماس ؟ ومن ثم ، إذا كان اثنان واجهات له نفس توقيع الأسلوب ويريد الفصل أن يرث (الأدوات في Java) من هذين الاثنين واجهات ، لا يوجد "جسم طريقة" للوراثة ، وبالتالي " الماس ميراث" مشكلة يتم تجنبه.

موصى به: